๋ ์ด๋ ค์ธ ์ค ์์๋ ์ดํด๋์ค ๋ก๊ทธ์ธ, ๋ง์ดํ์ด์ง ์ ๊ทผ์ ์ ํ๋๋ฐ ๊ณต์ ๊ธฐ ๋ก๊ทธ์ธ, ์ต์ ํ์จ์ด ๋ฒ์ ํ์ธ์ ๋ค ํ๋๋ฐ ๊ฑฐ์ 3์ผ ๊ฑธ๋ฆฐ ๊ฒ ๊ฐ๋ค. ๋ญ๊ฐ ์ด๋ ๊ฒ ์ด๋ ค์ด์ง.. ์ํผ ๊ฒฐ๊ตญ ํด๋๋ค.
์ฒ์์ ํด๋งธ๋ ์ด์ ๊ฐ ๋ก๊ทธ์ธ ์ ์ง๊ฐ ์๋๋ ๊ฑฐ์๋ค. ์ด ์ ์ eclass ๊ฐ์ง๊ณ ํด๋ดค์ ๋๋ ๋ก๊ทธ์ธ ์ ์ง๊ฐ ์๋๋๊ฒ ์๋๋ผ ์ ์ด์ URL์ ์๋ชป ์ ๋ ฅํด์ ๋ก๊ทธ์ธ ์์ฒด๊ฐ ์๋๊ฑฐ์๊ณ ์ด๋ฒ์ ๋ก๊ทธ์ธ์ ๋ถ๋ช ํ ๋๋๋ฐ ๋ก๊ทธ์ธ ํด์ผ์ง ๋ค์ด๊ฐ ์ ์๋ ๊ด๋ฆฌ ํ์ด์ง์ ์ ์ํ๋ ค๊ณ ํ๋ฉด session time-out ์ด๋ผ๊ณ ๋์๋ค.
์๋ฌด๋ฆฌ ์๊ฐํด๋ ์ฟ ํค ๋ฌธ์ ์ธ๊ฑด ์๊ณ ์์๋๋ฐ ๊ทธ๋์ ํ์ด์ฐธ์ ์๋์์ฑ๊ธฐ๋ฅ์ ๋น๋ ค์ ํค๋๋ ๋ฐ๋๋ ์ด๋๋ ์ ์ฅ๋ผ์์ ์ฟ ํค์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ ค๊ณ
response.request.headers
response.headers
response.cookies
๋ฑ ๋ณ ํจ์ ๋ค ์จ๊ฐ๋ฉด์ ์ป์ด์ค๋ ค๊ณ ํ๋๋ฐ ๋์์ค๋ ๊ฐ์ ๋ค None ์๋๋ฉด [] ๊ฐ์ด ๋น์ด์๋ค๋ ๋ง ๋ฟ....
์ด ์ผ ์ํจ์ฌ๋(ใ
ใฑ)์ ํค๋์ ๋์ด์์ผ ํ๋ ๊ฑฐ๋ผ๊ณ ํ๋๋ฐ ํค๋์ ์.๋ค.๊ตฌ.์
๊ทผ๋ฐ ๋ ๊ด๋ฆฌ์ ๋ชจ๋๋ก ๋ณด๋ฉด Request Header์ ์ฟ ํค ๊ฐ์ด ์๊ธด ํด์ ๋ ํท๊ฐ๋ ธ๋ค.
๊ทผ๋ฐ Burp suite๋ก ํ์ธํ ๊ฒฐ๊ณผ Response ๊ฐ์ ์ ๋ณด๋ฉด ์ ๋ ๊ฒ HTML ํ๊ทธ ์์ JavaScript๋ก ์ ํ์์ด์ response ํ ์คํธ๋ฅผ ๊ฐ์ ธ์์ ์ ๊ท์์ผ๋ก ์ ๊ธฐ ์๋ setCookie() ๊ฐ์ ๊ฐ์ ธ์์ผ ํ์๋ค.
์ํผ ๊ทธ๋ ๊ฒ ํด๊ฐ์ง๊ณ ์์ฑํ ์ฝ๋๋
import time
import requests
from bs4 import BeautifulSoup
import sys
import re
proxies={"http":"http://localhost:8080"}
def func(ip):
url = 'http://' + ip + '/sess-bin/login_session.cgi'
loginURL = 'http://192.168.30.1/sess-bin/login_handler.cgi'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('title')
print(title.text)
id_pw = 'admin'
session = requests.session()
data = {
"init_status" : '1',
"captcha_on" : '0',
"captcha_file" : '',
"username": id_pw,
"passwd": id_pw,
"default_passwd": '์ด๊ธฐ์ํธ:admin(๋ณ๊ฒฝํ์)',
"captcha_code" : ''
}
res = session.post(loginURL, data=data)
tmp = re.search(r'setCookie\(\'(\w+)\'\)', res.text)
cookie = tmp.group(1)
cookie = {'efm_session_id' : cookie}
firmwareURL = 'http://' + ip + '/sess-bin/timepro.cgi?tmenu=iframe&smenu=sysconf_swupgrade_online_status'
response = session.get(firmwareURL, cookies=cookie)
time.sleep(10)
response = session.get(firmwareURL, cookies=cookie)
soup = BeautifulSoup(response.text, 'html.parser')
tmp = re.search(r'ํ์จ์ด (\d+.\d+.\d+)', response.text)
version = tmp.group(1)
print("์จ๋ผ์ธ ๊ฒ์์ ํตํ์ฌ ์ต์ ํ์จ์ด " + version + "์ด ๊ฒ์๋์์ต๋๋ค.")
if __name__ == "__main__":
ip = sys.argv[1]
func(ip)
** ์ฐธ๊ณ ๋ก ์ ๊ธฐ์ proxies={"http":"http://localhost:8080"} ์ด ์ฝ๋๋ burp suite ํ์ฉํ ๋ Proxy์์ HTTP history์ ํ์ด์ง ๋์ด๊ฐ๋ ๊ณผ์ ๋ณด์ฌ์ฃผ๊ณ request๋ response ๋ณด์ฌ์ฃผ๋๊ฑฐ์ ์กํ๊ฒ ํ๊ธฐ ์ํด์ ์ฐ๋๊ฑฐ๊ณ requests.get() ์ด๋, session.get(), session.post()๋ฑ์ ์ธ๋ proxies=proxies ์ฒ๋ผ ์ฐ๋ฉด ๋๋ค.
๊ทธ๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ์คํ ๊ฒฐ๊ณผ๋
์๋๋ค^_____^
'โ๏ธ 21-2 IPP > study & work' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CVE ํฌ๋กค๋ง ํ๋ก๊ทธ๋จ ์์ (0) | 2021.09.23 |
---|---|
python ์ฐ์ต - 4 (0) | 2021.09.23 |
python ์ฐ์ต - 1 (0) | 2021.09.13 |
CVE, CWE, CCE (0) | 2021.09.08 |
CVE ID, Date, Severity ํ๋ฒ์ ํฌ๋กค๋ง (0) | 2021.09.08 |
๋๊ธ