Web安全领域探索之变量覆盖漏洞实战

这次借助合天网安实验室的一道ctf题来详细演示变量覆盖漏洞

1.首先,打开合天网安实验室,找到相关实验,进入,访问url,发现是空白页面

2.不慌,检查一下源码,果然,有后端php代码提示

3.这是变量覆盖题目,我们首先抓住重点extract()函数,这个函数简而言之就是将数组的键值对转换成变量名和变量值。比如数组是'a'=>'111',经过这个函数转换之后就会变成$a='111',这里传进来的是get方式传的参数,比如?flag=1那就会转换成$flag='1',如果之前有$flag这个变量名,如果没有加其他参数,那就会覆盖掉之前变量的值

4.这里进行变量$gift的判断,如果这个变量存在值,那就对变量$flag这个变量值作为文件名用函数file_get_contents()进行取值,取出里面的文本内容,再用函数trim()对首尾的空白符或其他预定义字符进行去除,前面加@表示如果这个函数出错那也不会显示任何提示,最后赋值给变量$content

5.接着判断变量$content变量值和$gift变量值是否相等,相等则输出flag,很显然,这里没有定义过变量$gitf,所以我们要通过get方式进行传参,然后程序会通过extract()函数将其转换成变量名和变量值,变量$content是名为变量$flag的变量值xxxx的文件里的内容去除前后空白符之后的字符串,但是我们并不知道该文件内容是什么,所以我们这里需要借助函数file_get_contents()如果里面的参数是空字符串,那么返回的值也是空字符串,即最后变量$content值为空字符串,那么我们只要传参gift也为空字符串就能使它们相等了,所以最终构造payload ?gift=&flag=

6.成功拿出flag,本题完成

### 如何入门网络安全

#### 建议

多看书

阅读永远是最有效的方法,尽管书籍并不一定是最好的入门方式,但书籍的理解需要一定的基础;但是就目前来看,书籍是比较靠谱的入门资料。

现在Web安全书籍比较多,因此大家在学习的过程中可以少走了不少的弯路。如果以上推荐书籍阅读有困难,那就找自己能看得进的 Web 安全的书

当然纸上谈兵终觉浅,最好还是实践一下。

对于那些没有学习方向和资料的同学,可以看下我整理的资源,这份资料经历过社会的实践,可以说是当下全网较全的网络安全知识体系:

①网络安全学习路线

②20份渗透测试电子书

③安全攻防357页笔记

④50份安全攻防面试指南

⑤安全红队渗透工具包

⑥网络安全必备书籍

⑦100个漏洞实战案例

⑧安全大厂内部视频资源

⑨历年CTF夺旗赛题解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的Kiko君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值