编写python脚本访问网页获取隐藏的flag,网页上有动态算术式子,需要在2秒内提交该算术答案后获取到flag。(查看网页源代码,编写程序提取出式子并计算提交): http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php
时间: 2023-07-15 15:11:50 浏览: 136
首先,我们需要用 requests 库来访问该网页,并且使用正则表达式从 HTML 中提取算术式子。然后,我们可以使用 eval() 函数计算答案,并使用 requests 库向服务器发送答案。
以下是一个示例脚本:
```python
import requests
import re
import time
# 访问网页并获取 HTML
url = 'http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php'
response = requests.get(url)
html = response.text
# 从 HTML 中提取算术式子
pattern = r'<div id="question">(\d+ [+\-*] \d+)</div>'
match = re.search(pattern, html)
if match:
question = match.group(1)
else:
print('无法提取算术式子')
exit()
# 计算答案
answer = eval(question)
# 提交答案
payload = {'answer': answer}
response = requests.post(url, data=payload)
# 检查是否获取到 flag
if 'flag' in response.text:
pattern = r'<p>(flag{.+})</p>'
match = re.search(pattern, response.text)
if match:
flag = match.group(1)
print('成功获取 flag:{}'.format(flag))
else:
print('无法获取 flag')
else:
print('提交答案失败')
```
注意,在计算答案和提交答案之间需要等待一段时间,以确保在 2 秒内完成。可以使用 time.sleep() 函数进行等待。
阅读全文