BugKu Web渗透之秋名山车神
启动场景,打开网页。
步骤一:
右键查看源代码。
没有发现任何异常。
步骤二:
dirsearch扫描网站。
也没有任何发现。
步骤三:
不知道能干什么了。看到提示说在2秒内得出答案。于是刷新了几次。注意,时间间隔要控制在2秒内。2秒内的刷新就会显示:
Give me value post about
433446243-97621328+1244292873-882220699-161610511+853655308*1963578423-277983026+58188845-768660845-836237313=?
如下图:
步骤四:
用 bp 或者 hacker bar,传值post数据。
首先把那一堆计算复制,打开excel表,输入=,之后粘贴那一串计算。之后会显示计算结果。(其实这样不行,因为数值过大,excel计算的结果直接四舍五入了。)将结果放入post数据中,我试过直接放入答案,也试过先写value再把答案赋值给他,但是发现不行,还是提示我“Give me value post about”。
步骤五:
对比之前两个请求的不同。发现提示“Give me value post about”,比之前普通的,在cookie中多了Timeout=alive。
于是重新添加Timeout=alive,再增加post传值。但是依然失败。
步骤六:
写python脚本,用脚本计算传值。
import re
import requests
#请求头 cookie 记得一定要加上Timeout=alive
headers = {"Cookie": "_ga=GA1.1.103100761.1748935692; _ga_F3VRZT58SJ=GS2.1.s1748939099$o2$g0$t1748939099$j60$l0$h0; Hm_lvt_c1b044f909411ac4213045f0478e96fc=1748935700; PHPSESSID=dth6dm4507tm3sodjtf8r85b30; Timeout=alive"}
#用此请求头去请求网页
res = requests.get("http://117.72.52.127:16687/",headers=headers)
#测试使用 手动复制网页上的算式 (可不写)
testdata= 255541549-314887493+928558047+609246310+2106543207-418376871+2084736110-895494989+446936679*73844046*1870148562
#res.text 为Give me value post about 1944800670*920371844-454844376+707101517*651647071-478630233*35916318*1772277915+434562273+1602162910+1179514472=?
#eval 执行里面的字符串代码 ,最后结果应该就是算式计算得出的值
dd = eval(re.search(r"Give me value post about (.*?)=\?", res.text, re.S).group(1))
d = {"value": dd
}
#再次请求,post方式,带cookie的请求头和计算结果的data
res = requests.post("http://117.72.52.127:16687/",headers=headers,data=d)
#打印出网页返回的字符串
print(res.text)
之后在终端中,输入 python 文件名.py
获取flag。
误区:
一:首先这个计算的值是很大的,我之前用excel去计算,结果他把后面的位数都直接四舍五入了。所以不能用excel去计算,还是自己写一个脚本计算比较好。
二:用脚本写时,字符串处理需要注意,最好打印出来,看看是否有处理错误,如果是一样的就没问题。
三:cookie记得处理,还要加上Timeout。post传值是对象,而不是字符串,别“value:计算结果”这样一串过去,会报错。