SQL注入处存在的XSS漏洞

SQL注入与XSS都是web安全中的危险漏洞

简单来说一下XSS与CSRF最大的区别,这两个的最大的不同点在于XSS是客户端信任服务端,当服务端未过滤恶意代码发送给客户端,客户端浏览器就直接执行;CSRF是服务端信任客户端,当攻击者构造好url之后,受害者发送请求给服务器,通过服务器的验证(cookie,token之类的),则直接以受害者的权限执行相关操作,完成服务。

SQL注入中的XSS

环境
  • Apache
  • MYSQL
  • PHP
测试网站
  • SQLi-Labs
  • bWApp

GET 型参数

  • SQLi-Labs Less 1

id 处为SQL注入点,这里没有对参数做任何处理,只要构造相应的SQL语句则可以执行SQL注入

修改参数为<script>alert(/xss/)</script>,审查元素可以看见,这句代码被在前端执行了

在这里插入图片描述

  • bWApp SQL Injection (GET/Select)

moive 为注入点,当在注入点moive处构造<script>alert('xss')</script>时,那么也会被xss攻击

在这里插入图片描述

POST 参数

  • SQLi-Labs Less 11

在usrname,password构造xss语句,并发送给服务器,当服务器返回之后,前端浏览器直接解析这句脚本,xss攻击构造成功

在这里插入图片描述

  • bWApp XSS - Reflected (Login Form)

构造post请求体为

login=' or 1=1&password=<script>alert('xss')</script>&form=submit

login=' or 1&password=<script>alert('xss')</script>&form=submit

login=' or 1=1&password=<script>alert('xss')</script>&form=submit

等等

在这里插入图片描述

成因

xss是客户端信任服务端,当服务端返回了恶意代码之后,客户端会完全相信服务端返回的数据,并在客户端浏览器解析执行,当解析到有<script>alert(/xss/)</script>诸如此类的恶意代码的时候,在web前端中,只要HTML中存在<script>标签,那么浏览器渲染引擎则会立马停止渲染,由JavaScript引擎执行JavaScript代码,所以恶意代码能执行是因为存在HTML代码中,并且JavaScript引擎立马执行了<script>标签中的JavaScript代码

在SQL注入中,成功执行xss恶意代码的条件

  • 页面有回显

例如 在php中开启了echo $sql,或者echo mysql_error()诸如此类的查询的语句,以及错误回显给客户端之类的代码

当被攻击者利用服务端返回给客户端的信息,就能构造恶意代码,完成xss攻击

防御

  • 关闭页面回显,不使用诸如此类的提示信息
  • 过滤<>等关键字符
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值