2. Information Security/3. War Game21 웹해킹 18번 (webhacking.kr old 18) 1. 공격 유형 : SQL INJECTION 2. 취약점 환경 : Preg Match 함수 우회 (취약함수) 3. Write Up - no값을 받아 preg_match 함수로 패턴매칭 수행 후 일치하면 No Hack 메세지 출력 후 종료 - preg_match 값과 일치하지 않으면 $result 수행 후 id값 비교 id가 guest일 경우, hi guest), (id가 admin일 경우 hi admin 후 solve - Payload : select id from chall18 where id='guest' and no=0 or no=2 - 공백의 경우 preg_match에서 필터링하여 해당 payload 실행 불가 - preg_match의 공백을 우회하기 위해 공백을 아래의 문구로 대체함 ㅇ TAB .. 2019. 12. 24. 웹해킹 17번 (webhacking.kr old 17) 1. 공격 유형 Javascript 변조 2. 취약점 환경 : Javascript 3. Write Up 2019. 12. 24. 웹해킹 16번 (webhacking.kr old 16) 1. 공격유형 : Javascript 2. 취약점 환경 : Javascript 변조 3. Write Up 1. document.body.innerHTML : *의 속성을 주어 색상 및 위치 결정 (Yellow, 0, 0) 2. funtion mv(cd) : cd값에 따라 star의 위치를 변경, 마지막 if문에 따르면 Solve 3. funtion kk(x,y) : rndc의 값은 Random함수 * 900000하여 나온 결과값을 저장 상위에서 지정한 document.body.innerHTML의 *값의 속성을 변경 각함수는 함수는 페이지 호출 시 kk(1,1), onkeypress=mv(event.keyCode)로 호출됨 4. javascript 조작 : mv(124)값을 삽입하여 강제로 mv 함수 호출.. 2019. 12. 24. 웹해킹 14번 (webhacking.kr old 14) 1. 공격 유형 : Javascript 2. 취약점 환경 : Javascript 난독화 3. Write Up 4. 소스코드 분석 - document.URL (현재 접속 URL 주소)를 ul 변수로 지정 - ur.indexOf(".kr")을 이용해 ul에 저장한 URL 주소를 .kr을 기준으로 index 값 추출 - ul * 30 후 ul 변수에 저장 이후 ul값과 pw.input_pwd.value의 값의 일치여부에 따라 Solve / Wrong 수행) - ul 값은 540이나 if문 수행시 540*540값으로 변환됨 2019. 11. 25. 웹해킹 12번 (webhacking.kr old 12) 1. 공격 유형 : Javascript 3. Write Up - 소스코드 해석 1. ck 파라메터 값을 받아서 '=' 문자열을 기준으로 substr을 이용하여 분리함 (=뒤 문자열 -> ?ck="페이로드") 2. enco 변수에 charcode 1~122에 해당하는 값 삽입 ( !"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy) 3. enco_x Function은 인자dls fromcharcode(문자열의 ascii값) 'x'를 받아서 charcodeat(x) -> 문자열값으로 돌려줌 4. if문에서 ck값이 String.fromCharCode(enco.. 2019. 11. 10. 웹해킹 11번 (webhacking.kr old 11) 1. 공격 유형 : GET 파라메터 변조 2. 취약점 환경 : - 3. Write Up - $pat 변수는 정규표현식의 성질을 같는다 - preg_match는 정규표현식과 GET 파라메터 Val 값을 비교한다 - $pat 분석 1. [1-3] : 1~3 숫자 중 1개 2. [a~f]{5} : a~f 문자 중 5개 3. .*$_SERVER[REMOTE_ADDR].* : .*뒤에 0개 이상의 클라이언트 IP 문자열이 반복되며 .*에서 종료됨 4. \tp\ta\ts\ts : p a s s (탭) -> 탭을 URL 인코딩하면 %09가 된다 - Source 분석 1. 11-1.php : GET 파라메터 pay에 값을 11.php로 전달 2. 11.php : pay값을 fong에 저장하여 $pat과 정규식 비교 -.. 2019. 11. 8. 웹해킹 10번 (webhacking.kr old 10) 1. 공격 유형 : HTML 태그 변조 2. 취약점 환경 : Response 값 내 this.stylle.left 값 변경 3. Write Up ㅇ 코드분석 - onclick(마우스 선택시) this.style.left 값에 1px 전달 (parseint 값내 10은 10진수로 값을 받겠다는 의미임) - if(this.stype.left == '1600px' : this=href='?go=this.style.left (this.style.left 값이 1600일 경우 ?go=1600px 전송) ㅇ 공격 포인트 (response 값에서 this.style.left 값을 1600으로 변경!) 2019. 11. 1. 웹해킹 9번 (webhacking.kr old 9) 1. 공격 유형 : BLIND SQL INJECTION 2. 취약점 환경 : no값에 BLIND SQL INJECTION 수행 3. Write Up ㅇ 공격 포인트 - No 3번의 id 컬럼이 DB에 존재한다고 추측 - No 3번의 id 컬럼을 확인하기 위해 SQL INJECTION 수행 ㅇ 공격 수행 - SQL 쿼리를 분석해보면 no 파라미터에 숫자를 전달하면 DB에서 해당 no의 id값을 출력해주는 형태로 no 3값의 id를 출력해야 하고 이를 진행하기 위해 if문 구조의 BLIND INJECTION 수행이 필요함 - BLIND INJECTION의 경우 반복으로 값을 요청해야하기 때문에 Python(3.x) 버전의 Reuqests를 이용하여 코드 공격 코드 생성 import requests s = r.. 2019. 10. 30. 웹해킹 8번 (webhacking old 8) 1. 공격 유형 : 파라메터 변조, SQL INJECTION 2. 취약점 환경 : Client Header값인 User_Agent 변조를 통해 SQL INJECTION 수행 3. Write Up ㅇ 코드 분석 - $agent에 trim(앞뒤 공백 제거)을 적용한 HTTP_USER_AGENT 값 선언 - $ip에 Client IP인 $_SERVER($REMOVE_ADDR) 값 선언 - $ip에 from 문자열 존재시 htmlspecialchars 함수가 적용된 $agent 문자열 표현 - $count_ck에 chall8 테이블 row수를 저장함 (count 함수 이용) - $count_ck 값이 70 이상일 경우 chall8 테이블 삭제 - chall8 테이블에서 addslashes함수를 적용하여 $_SE.. 2019. 10. 20. 이전 1 2 3 다음