본문 바로가기

2. Information Security37

웹해킹 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.
2. SQL INJECTION CHEAT SHEET (SQL 인젝션) 1. ?bid=if(1=1,52,2) : select bid from board where bid=if(1=1,52,2); 2. ?bid=if((1)like(1),1,2)# : select if((1)like(1),1,2); : select instr(1,1); 3. ?bid=52 or bid=if((select(ascii(substr((select(bid)from(board)where(bid)like(52)),1,1))))=1,52,0) 4. ?bid=52 union select (1)# : select bid from board where bid=52 union select (1); 5. ?bid=52 union select (version())# : select bid from board where.. 2019. 10. 20.
웹해킹 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. PHP Security 1. PHP Version Update / Patch 2. Register_globals 3. Apache AddHandler 4. Prepared Statements 5. PDO 6. htmlentities, htmlspecialchars (&, "", '', ) 7. mysql_real_ecape_string : \x00, \n, \r, \, ', ", \x1a - x00 = 숫자 0을 의미 / \n Line Feed (다음줄) / \r Carriage Return (해당 줄의 맨 앞줄) / \x1a Ctrl+Z = EoF 8. addslashes : ', ", \, null 9. eval, exec, shell_exec, proc_open, popen, passthru 10. file, system.. 2019. 10. 20.
웹해킹 6번 (webhacking old 6) 1. 공격 유형 : 파라메터 변조, 역공학 2. 취약점 환경 : View Source의 PHP 코드를 역공학하여 인증값 입력 3. Write Up ㅇ 코드 해석 - $val_id, $val_pw 값을 각각 guest, 123qwe로 선언한 뒤 base64_encode 함수를 이용해 20번 인코딩 - 인코딩된 $val_id, $val_pw 각각의 변수를 str_replace 함수로 난독화 수행 - 난독화한 변수를 Setcookie를 이용하여 user, password에 입력함 - $decode_id, $decode_pw 변수에 난독화한 user, password값 선언 후 str_replace 함수로 복호화 수행 - 복호화된 $decode_id, $decode_pw 변수를 base64_decode 함수를 .. 2019. 10. 20.
웹해킹 1번 (webhacking old 1) 1. 공격 유형 : 쿠키값 변조 2. 취약점 환경 : cookie의 user_lv=1 값을 변조하여 인증 우회 3. Write Up ㅇ 코드 해석 - SetCookie에서 user_lv의 값을 1로 선언하고 있음 (뒤의 time값은 쿠키 유지시간, /challenge/web-01/은 쿠키 유효범위를 가르킴) - $_COOKIE['user_lv'] 값이 숫자가 아니라면 숫자 1을 선언 - $_COOKIE['user_lv'] 값이 5보다 크거나 6보다 같거나 작으면 Solve(1) 수행 ㅇ 공격 시도 2019. 10. 20.