xss运行PHP代码,PHP代码审计之XSS操作

XSS

XSS是Cross Site Scripting(跨站脚本攻击), 它与sql注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除的目的,而在XSS攻击中,通过插入恶意脚本,实现对用户浏览器的控制.

XSS攻击的种类

xss攻击可以分为两种类型.:

非持久型攻击:非持久型攻击也就是一次性攻击,仅对当前的页面访问产生影响.

持久型攻击   : 持久性xss会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在而存在.

源码展示

54d281b2e641acd993328511e5a720b3.png

代码里面并没有对HTTP_CLIENT_IP 和HTTP_X_FORWARDER_FOR 这两个参数做任何的限制, 也就代表着我们可以修改这两个参数的值来达到任意ip的目的.

使用全局搜素看下这个函数在哪个地方应用,

通过全局搜素得知,其主要应用为在登录的时候记录登录ip,经过sqlwaf过滤,赋值给ip变量.sqlwaf前面已经看过了 只是过滤了sql注入 ,并没有对xss进行过滤.

333503d2f83e5b9c39ec31e735264191.png

确定可以进行xss注入之后, 使用全局搜索,看哪里使用了这个字段进行输出.

00c07f133fb6af9e3034818fee65379e.png

验证漏洞

准备payload,你可以放到你的网站,也可以放到你本地,只要能请求到就行

fab0a7cf37f9993713235f857af42b41.png

使用burp抓包工具,在提交登录的时候把HTTP_X_FORWARDER_FOR的值手动修改为

过程就不截图了.打开数据库 看下记录的结果.

3a4efb50a485f0151150737ab54ca250.png

登录后查看后台,可以看到代码被成功加载了

275368d5e1eba563924b0d8de49aa18c.png

修复方案

个人认为sql注入和xss攻击本身就不是一类,用同一个方法来过滤,已经是不合理了.

应使用专门的函数对xss进行过滤,如script,Script,ssccrript等一切能出现的组合,编码后的组合等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值