본문 바로가기

[HDCon 2013] 3번 문제 write up (2번 문제는 생략하도록 한다. 그냥 네이트온 대화가 오간것을 찾으면 된다.) virtual host 문제였다. 서버가 virtual host일때, HTTP 헤더의 'Host' 헤더에 따라서 폴더의 경로가 바뀔수 있다.이번에 처음 안 사실이고, 신기했다. 그래서, 기본적으로는 host가 kisa로 되어있으며, Host를 localhost로 변경할경우 다른 폴더가 나타난다. import httplib,urllib; import time from socket import * """ s = socket(AF_INET,SOCK_STREAM) s.connect(('118.107.172.213',8888)) s.send("GET /2013_06_04_blog_backup_.zip HTTP/1.1\r\n") s.se.. 더보기
[HDCon 2013] 1번 문제 write up 1번 문제는 sql injection 문제였다. injection 위치는 limit 부분이었다. limit 부분에 인젝션이 가능할때는 union 인젝션만 가능하다고 알고 있었고, 이게 맞는듯 하다.그래서 '(', select, from 등이 필터링이 되어있다는걸 알았을때는 멘붕이었고, 내가 잘못 알고 있나 해서 검색을 엄청나게 했다.하지만, 이 문제는 좀 다른 방향으로 접근해야 했다.문제파일의 확장자는 'do' 였다. do 확장자에 대해 검색해보면, do 확장자에서 jsp를 불러온다는걸 알수있다.그래서 students.do 대신 students.jsp로 요청을 하면 ,select의 필터링이 풀린다. (즉, do에서 필터링을 하고있었다는걸 알수있다.)그 후에는 간단한 union 인젝션이다. import h.. 더보기
[CodeGate 2013] Vuln 200, exploit 대회때 서버환경이 뭔지 몰라서, 그냥 우분투 13.04에서 테스트했다. from socket import * from struct import * import time cmd = "id>&4\x00" send_plt = pack(' 더보기