본문 바로가기

wri te-ups/wargame.kr

(9)
wargame.kr md5 password write up 해당 문제에 접속해보면 이 문제도 소스를 제공해주는 것을 볼 수 있다. 소스를 보자. SQL 문을 통해서 DB에 있는 값을 검색한다. 취약점은 md5() 함수에서 일어난다. md5()의 raw_input 인자를 true로 넘겨준다면, 16진수의 raw한 값들을 넘겨주는데 만약 0x27 같은 값이 있을 경우 해당 SQL 쿼리에 영향을 줄 수 있다. (참고로 0x27은 char형으로 ' 이다. ) 스크립트를 사용하여 쿼리에 영향을 줄 수 있는 정의역을 구할 수 있다. 따라서, 저 값을 이용해서 password 를 검색한다면 admin 의 권한을 가져올 수 있다. (129581926211651571912466741651878684928) 해당 정의역을 찾는 소스는 다음을 참고하면 된다. ( http://cvk..
wargame.kr md5_compare write up 해당 문제에 접속해보면 소스를 제공해준다. 소스를 한 번 보자. 알파벳으로만 이루어진 v1 값을 받고, digits로만 된 v2 값을 받고 loose compare 방식으로 두 값을 md5 해시화한 값을 비교한다. PHP의 loose compare 는 굉장히 위험한 코드 중 하나라고 평가받고 있다. 왜냐하면 다음과 같은 현상이 발생하기 때문. md5의 공역은 16진수로된 문자열이다. 따라서 앞에 0e~~ 로 시작하는 정의역을 찾는다면, 우리는 loose compare를 통해서 해당 분기문을 우회할 수 있다. Loose compare는 외국의 여러 해커들이 찾아놓았다. (https://news.ycombinator.com/item?id=9484757) $ echo -n 240610708 | md5sum 0..
wargame.kr jff3_magic write up 해당 문제를 접속하면 다음과 같은 alert가 계속 뜬다. 그래서 Browser의 설정 탭에 들어가서 Javascript를 비허용한 상태에서 Exploit을 진행하면 더 빠르게 문제를 풀 수 있다. Challenge Analyse일단 hint가 swp 이므로 .index.php.swp 가 있을 것으로 예상된다. .index.php.swp 에 접속하면 스왑 파일을 다운 받을 수 있는데, 이 스왑 파일에는 index.php 소스의 일부분이 있다. ( $vim -r .index.php.swp 으로 복구해보려고 했지만, 설정도 약간 해줘야되는 부분이 있어서 그냥 제공된 소스만 보기로 했다.) $q = mysql_query("select * from member where no=".$_GET['no']); 위와 ..
[wargame.kr] img recovery write up 음 요즘 웹 말고도 여러 분야 문제들을 풀고 있는데, 이건 비교적 쉬웠던 문제같다. img recovery 문제 사이트에 접속해보면 눈 아픈 화면이 뜬다. 소스를 보자. 같은 경로에 있는 pattern.png 파일을 배경 사진으로 지정했다. 그럼 pattern.png 를 다운받아서 분석해보도록 하자!헥스 에디터로 까보았다. 여기에 readable 한 text가 있다. tEXtSoftware.Japng 라고 저장되어 있는데 한 번 검색해보았다. 맨 위에 나온 툴을 다운 받아서 java -jar 명령어를 이용하여 실행했다. 오 png 파일 두개가 나왔다. 근데 뭔가 QR 코드같이 생겨서 포토샵으로 스-슥해서 합성해보았다. 그리고 QR 코드를 해석해서 나온 문자열을 png 파일을 다운 받은 사이트에 넣고 ch..
wargame.kr zairo write up 1st queryhttp://wargame.kr:8080/zairo/?id=%27+union+select+1,&pw=,3,4,5%23 2nd queryhttp://wargame.kr:8080/zairo/?id=%27+union+select+1,xvvcPw4coaa1sslfe,2,3,4+from+findflag_2%23&pw=,3,4,5%23
베네듀 SQL Injection 찾는 데에 힘든점 여러 테스트를 해보니, 검색 기능에서 SQL Injection 취약점이 발견되었는데, MSSQL이라서 잘 다루기가 힘들고 세미콜론이 필터링되어 있는 것 같아서 공략하기가 쉽지 않다. 검색 기능에서 일어나는 베네듀의 SQL Injection 취약점은 2번 제보했지만, 모두 거절당해서ㅠㅠㅠ
[wargame.kr] lonely guys solving 라이트업이 아닌 그냥 풀면서 작성하는 글- H3X0R 소속 ch4n3 이번 문제는 order by 를 이용해서 SQL Injection을 진행하는 문제인데, 생각보다 빨리 해결할 수 있을 것 같다. 예전에 누군가가 order by로 칼럼의 개수를 알아낼 수 있다고 했었다. order by [n]; # 단 n != 0이 구문에서 에러가 난다면 테이블에 있는 칼럼의 개수는 n-1개인 것을 유추할 수 있다는 것이다. 이 문제에서는 3개의 칼럼이 있었다. 그 외에는 또 다른 정보를 얻을 수 없었다. 하지만, 갑자기 뇌리에 박혀 블로그에 까먹지 않으려고 포스팅을 하게 되었다. 서브쿼리를 이용해서 Blind SQL Injection을 수행하는 것이다. order by 0에서는 오류가 나기 때문에 충분히 가능하다고 ..
[wargame.kr] web Chatting write up Web Chatting write up- H3X0R 팀 소속 ch4n3 - 이 문제는 ajax? 그런 쪽만 알아도 충분히 풀 수 있는 문제였던 것 같다. 내 워게임에도 SQL Injection은 아니지만, 비슷한 문제가 있었는데,,ㅎㅎ 이 문제 풀이를 아직 못 푼 분들께 알려드리자면, 크롬에서 F12를 누르고 Network 탭에서 어떤 네트워크 연결이 생기는지 보면 쉽게 풀 수 있을 것같다. 그리고 무엇보다 스크립트가 필요하다. ip log table 문제를 이미 풀어서 그런지 술술 풀렸던 것 같다. https://github.com/chaneyoon/wargames/blob/master/wargame.kr/webChatting.py 이번 코드는 파이썬 코딩 컨벤션을 지키려고 정말 많이 노력했던 것 같음..