webhacking.kr (22) 썸네일형 리스트형 old-07 소스코드를 준다 코드를 봐보자 1 // preg_match 안에 들어있는 단어들이 존재하면 exit("Access Denied!")을 한다 한마디로 필터링 2 if(preg_match("/2|-|\+|from|_|=|\\s|\*|\//i",$go)) exit("Access Denied!"); 3 4 // 우리가 입력한 값이 $go에 들어간다 공격 포인트! 5 if($rand==1){ 6 $result=mysqli_query($db,"select lv from chall7 where lv=($go)") or die("nice try!"); 7 } 8 9 // data[0] 가 2이면 문제가 풀린다 10 elseif($data[0]==2){ 12 echo(""); 13 solve(7); 14 } 편하게 읽으.. old-06 1 32 if($decode_id=="admin" && $decode_pw=="nimda"){ 33 solve(6); 43 } 코드를 친절히 설명했다 ^^ 그래도 모르시겠다면 구글에.... 우리의 목표는 쿠키를 확인해 decode_id 가 admin decode_pw 가 nimda 가 나와야 풀린다 밑에 또 다른 php 코드가 decode하는 코드이므로 우리는 admin 과 nimda를 encode 해야한다 파이썬의 도움을 받아서 encode 해보자 import base64 def change(e): result = e.replace("1","!") result = e.replace("2","@") result = e.replace("3","$") result = e.replace("4","^") res.. old-05 사이트에 들어가면 로그인 버튼과 가입버튼이 있다 계정이 없으니 join 버튼을 눌르니까 접근권한이 없다고 나오기만 한다 개발자 도구로 source 를 보니 저런 코드가 나왔다 mem이라는 경로로 이동해보니 이번에도 join.php를 들어가보니 잘가라는 알림이 나온다 하지만 개발자도구로 소스코드를 보면 왜 저런 구문이 나오는지 알 수 있었다 1 2 3 if (eval(lIIIIIIIIIIIIIIIIIIl).indexOf(lIllIllIllIllIllIllIllIllIllIl) == -1) { 4 alert('bye'); 5 throw "stop"; 6 } 7 8 if (eval(llll + lllllllllllllll + lll + lllllllllllllllllllll + lllllllllllll + l.. old-03 nonogram 판이 나온다 이게 뭔지 몰라서 검색했더니 퍼즐게임이라고 한다 가로 세로에 해당하는 숫자 만큼 칸이 색칠되어야한다 나름 재밌으니 퍼즐은 직접..ㅋㅋ 퍼즐을 풀면 위와 같은 화면이 나온다 소스코드를 보니 value 로 전달하는 값이 있었다 문제는 db 관련... 그렇다면?! sql 구문을 마구 때리던 중 ' or 1=1# 를 썼더니 풀렸다 old-02 페이지 소스를 봤다 admin.php 가 있는거 같아 들어가 봤다 비밀번호를 입력하는 페이지인가 보다... 그다음 뭐하는건지 몰라 헤매던 중 admin.php에 들어가기 전 페이지에서 수상한 시간이 적혀져있는것을 봤다 근데도 뭐지 모르겠다 그렇게 또 한참을 멍때리던 중에 쿠키가 생각이 나서 쿠키를 살펴보는데 time 쿠기가 존재했다 2번의 문제는 데이터 베이스의 관련된 문제.... 그렇게 생각해서 sql injection을 때려봤다 시간이 변하면서 참 과 거짓이 분명하게 나타난다 이렇게 boolean based blind sql injection을 이용한 문제인 것을 알았으니 푸는것은 시간만 있으면 풀린다! 바로 파이썬 코드를 작성했다 import requests url = "https://webhack.. old-01 소스를 봐보자 ____________________________________________________________________________ 이전 1 2 3 다음