網路安全實驗室指令碼關第二題
由於題目給出資料很大的運算題,並且只能2秒內答出。這基本不可能,所以只能通過指令碼完成。
思路是用python程式碼訪問頁面,解析出算術題,然後解出答案,再post回去。
這是我的程式碼:
from urllib import request,parse
import requests
import re
print('網路安全實驗室--指令碼關第二題')
print('by--Kiruma')
data=request.urlopen('http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php').read()
demo='<br/>(.*)=<input type="text" name="v"/>'
info=re.findall(re.compile(r'<br/>\s+(.*)=<input type="text" name="v"/>'),bytes.decode(data))[0]
answer=eval(info)
print(info)
print(info)
print(str(data,'utf-8'))
mydata=parse.urlencode([
('v',answer)
])
print(answer)
s = requests.Session()
r=s.post('http://1.hacklist.sinaapp.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php', data=mydata)
print('************************************************************************')
print(str(r.content,'utf-8'))
然而結果卻一直是:
網路安全實驗室--指令碼關第二題
by--Kiruma
2188*61126+530*(2188+61126)
2188*61126+530*(2188+61126)
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
</head>
<body>
<form action="" method="post">
請在2秒內口算結果並提交!<br/>
2188*61126+530*(2188+61126)=<input type="text" name="v"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
167300108
************************************************************************
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
</head>
<body>
<form action="" method="post">
請在2秒內口算結果並提交!<br/>
3964*78634+1659*(3964+78634)=<input type="text" name="v"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
發現了原因,我兩次訪問了這個網址,導致兩次的算術題目不同。所以應該在一個session裡面訪問兩次網頁。。。