본문 바로가기

반응형

분류 전체보기

webhacking.kr(old) 37번 - 실패 파일을 제출할 수 있다고 뜬다. 밑에 rm -rf ./tmp/*가 있는 걸 보니 뭔가 쉘로 명령어를 쳐야하는 듯 하다. 127.0.0.1 IP에서 파일을 오픈하고, , . , /, 를 없앤다고 한다. $request = "GET /?{$flag} HTTP/1.0\r\n"; $request .= "Host: {$host}\r\n"; $request .= "\r\n"; 가 있는 것을 보니, 네트워크 관련 작업을 함이 확실하다. $socket = fsockopen($host,7777,$errstr,$errno,1); fputs($socket,$request); fclose($socket); if(count($dirList) > 20) system("rm -rf ./tmp/*"); 를 보니, 7777번 포트로 .. 더보기
webhacking.kr(old) 8번 HTTP_USER_AGENT에 addslash를 하고, ck=mysqli_fetch_array($result)임을 확인할 수 있다. 밑에 if문을 보아, SQL Injection 관련 문제인 듯 하다. $ck[0]의 값이 admin이어야 문제가 풀리는 듯 하다. 근데 처음 들어왔을 때 화면처럼 현재는 guest이기 때문에 admin으로 바꿔 풀어야 한다. insert into chall8(agent,ip,id) values('{$agent}','{$ip}','guest'); 를 이용해 풀도록 하겠다. 일단 프록시 사용을 위해 설정을 해놓는다. 이를 사용으로 바꾸고, burp-suite를 사용한다. 프록시 서버를 사용으로 바꾼 후, 해당 문제 사이트에 들어가도록 한다. 안 들어가지는 것을 확인할 수 있을 .. 더보기
webhacking.kr(old) 12번 javascript challenge관련 문제인 듯 하다. f12를 눌러 보니, 이모티콘이 많다. 밑부분까지 보니, 이모티콘으로 가득 찼음을 확인할 수 있다. 검색을 해보니 이 encode는 맨 밑의 aaencode와 관련된 문제인 듯 하다. 그래서 aaencode decode를 검색해 아래의 사이트로 들어갔다. https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html aadecode - Decode encoded-as-aaencode JavaScript program. ['_'] aadecode - Decode encoded-as-aaencode JavaScript program. (゚Д゚) ['_'] Enter ... .. 더보기
[mac] apache 설치(설정) 맥북은 필요가 apach나 php를 다운로드 받을 필요가 없다! 그래서 설정 바꾸는 걸 해도록 한다. sudo apachectl start 사실 apach를 실행할 때 이 명령어만 사용해도 된다. apachectl -v php -v 그런데 아파치, php 버전이 무엇인지, 잘 사용은 될 지 한번 보고 싶을 땐 이 명령어 2개를 실행해보면 된다. http://localhost/를 safari에 열어 들어가도록 한다. 이러한 화면이 나오면 잘 된 것임을 알 수 있다. 이제 작업하고 싶은 php파일을 저 도메인 localhost/[작업파일].php로 해서 작업하면 될 것이다. 근데 php파일을 어디 디렉토리에 넣어야 될 지 정해야 할 것이다. sudo vi /etc/apache2/httpd.conf 그럼 이런.. 더보기
정상 프로그램과 악성 프로그램 MD5해시값 비교 정상프로그램 MD5: 37040514c4c68395d76c7a030266975f 악성프로그램 MD5: d8b95ac3d9a87fd5564df0e40a042f3e 더보기
webhacking.kr(old) 61번 webhacking.kr 61번은 소스코드 보기가 바로 있다. php코드가 바로 있다. solve하기 위한 곳을 바로 보니 result[id]가 admin이어야 풀린다고 한다. result는 select문으로 이루어져 있고, 그 위를 보니 id 길이가 15넘으면 exit()한다고 한다. 또 그 위를 보니, \(, \), select, from, by, \.가 id에 들어가면 exit한다고 한다. 또 그 위를 보니, id에는 addslash(\)한다고 되어 있다. 어쨌든 id가 admin이어야 하므로 id=admin을 넣어보도록 한다. 딱히 달라진 점은 없다. 검색을 해보니, SQL에서는 칼럼 별칭이 있다고 한다. 'SELECT A as id~'처럼 A라는 별칭을 id로 사용하는 방법이 존재한다고 한다. .. 더보기
webhacking.kr(old) 60번 60번을 보면 이런 창이 나온다. 코드를 보니, is_numeric(~)을 통해 PHPSESSID에 숫자가 아닌 것이 있으면 exit()한다는 것을 알아냈다. mode=auth이고 result의 조건이 맞아야 solve된다고 한다. 쿠키에서 PHPSESSID를 1로 바꾼다. (EditThisCookie사용. f12의 application사용해도 무방) mode=auth로 했더니 이런 화면이 나온다. 딱히 뭐 바뀐 것은 없는 듯 하다. 코드를 다시 보니, IP가 127.0.0.1이 아니면 1초만에 파일을 지워버린다는 것을 알 수 있었다. 때문에, 지우기 전에 다른 세션으로 접속해보아야 할 듯 하다. 설정해놓은 크롬창 위에 시크릿창을 띄운다. 시크릿창의 쿠키 값은 다르게 설정했다. 새로고침 2개를 바로바로 .. 더보기
webhacking.kr(old) 59번 표처럼 구성되어 있음을 확인할 수 있다. view source를 통해 php코드를 본다. 일단 if문 전까지만 보도록 한다. if문 안을 보니, lid에 addslash(\)함을 확인할 수 있다. lphone에도 addslash(\)함을 확인할 수 있다. result에는 id=' ' and phone=' ' 가 들어간다고 한다. 밑에선 result['lv'] = admin이어야 풀림을 알 수 있다. 이제 밑의 if문을 본다. 위의 if문과 비슷한 것 같은데 이번엔 id, phone을 더 다루는 듯 하다. id와 phone에 addslash(\)함을 확인할 수 있다. phone이 20자가 넘으면 'ACCESS DENIED'라고 한다. admin이 id에 들어가면 exit()하고, admin, 0x, hex.. 더보기

반응형