网络安全实验室 脚本关通关记录

文章描述了一名玩家通过解决一系列技术难题来获取key的过程,涉及PHP脚本、HTTP请求、正则表达式解析、XSS漏洞利用、验证码爆破以及手机验证码绕过等环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一关

在search_key.php获取到key

脚本里自动跳转到了./no_key_is_here_forever.php,所以正常访问并不能获得key

第二关

构造脚本

import requests,re

# 自动处理cookies,做状态保持

s = requests.Session()

url = "http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"

# 网址的内容以utf-8形式显示

html = s.get(url).content.decode('utf-8')

# />\n:以/>结尾的下一行

# =<i:以=<i结尾

# (.*?):任意字符

reg = r'/>\n(.*?)=<i'

# 编译正则表达式

pattern = re.compile(reg)

# 返回匹配的内容及题目里面的表达式

match = re.findall(pattern,html)

# eval执行字符串表达式,并返回值设置给v

payload = {'v':eval(match[0])}

# post方式发送v=结果

print(s.post(url,data=payload).text)

scapy执行获得key

第三关

填入null

第四关

查看通过页面的源码,删除三个return false的函数

 

Slakfjteslkjsd

第五关

抓包并爆破密码

尝试输入1238这个特殊的结果

 

第八关

查看源码

直接输入(●''),发现没有弹窗,考虑让输入的内容^ _^直接(●''●)相等执行最后一个if语句提示flag,将^ _^转换为阿斯克码%5e%5f%5e,结合data url协议知识,构造%5e%5f%5e=data:text/plain, (●'')

第九关

正常获取验证码提示使用另一个手机号登陆

 

获取验证码后抓包修改登陆手机号

但是后面尝试发现使用6收取的验证码同样可以登陆7的号码,所以也可以不用抓包修改

第十关

先正常获取验证码,从提示的信息中猜测可能需要抓包爆破验证码

 

爆破结果

输入验证码又有一个手机号,头顶的青青草原藏不住了(doge)

 

修改号码重新爆破

获得flag

第十二关

构造简单的弹窗

正常弹窗,接着弹出第二个弹窗

 

重新构造脚本获得key

第十三关

查看前端代码下的xss_check.php,发现只要弹窗的内容为”success!”就会显示key

在控制台底下进行脚本构造操作

第十四关

与十三关同样操作,控制台直接构造弹窗

第十五关

直接控制台

【小结】

可以看看前端里面有什么内容,结合调用的代码去分析

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值