%3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击

背景

这个系列有很多题,但是其实考察的相近,类似的就不在多说,我们来看吧。主要分几个点来讲:

反射型

存储型

JSON

XM

头部字段相关

分类介绍

反射型

存储型

一般在博客留言板、评论、个人信息维护等地方容易存在,就是用户构造XSS的Payload保存在数据库中,一旦用户访问该页面,则中招。

20190128204823202922.png

20190128204823573039.png

JSON型

没有什么太大的不同,注意构造一下Payload,闭合标签即可,Payload:"

20190128204824084757.png

20190128204824511515.png

XML型

在XML解析payload需要注意<>两个字符需要使用HTML实体编码。

例如,这样

<img src=1 οnerrοr="alert(document.cookie)">

20190128204824719523.png

头部字段相关

其实就是值HTTP的很多头部字段都可以XSS,直接构造XSS的Payload的例如Cookie啊,自定义头部字段吧啊,Referer等等。观察一下头部字段那些数据会输出到前端页面上,或者对referer或者location等字段进行控制,跳转到一个有XSS的页面。

XSS防御函数、过滤、绕过

防御函数

//单纯过滤<>,对编码都没有检测,所以做一个url编码就绕过了。

function xss_check_1($data)

{

// Converts only "" to HTLM entities

$input = str_replace("

$input = str_replace(">", ">", $input);

// Failure is an option

// Bypasses double encoding attacks

//

// %3Cscript%3Ealert%280%29%3C%2Fscript%3E

// %253Cscript%253Ealert%25280%2529%253C%252Fscript%253E

$input = urldecode($input);

return $input;

}

//字符转成HTML实体,防御还可以,但是注意该函数的第二个参数选项ENT_QUOTES,编码单双引号,也不是不能绕过。

function xss_check_2($data)

{

// htmlentities - converts all applicable characters to HTML entities

return htmlentities($data, ENT_QUOTES);

}

//把&、、"、‘五个符号转成HTML实体

function xss_check_3($data, $encoding = "UTF-8")

{

// htmlspecialchars - converts special characters to HTML entities

// ‘&‘ (ampersand) becomes ‘&‘

// ‘"‘ (double quote) becomes ‘"‘ when ENT_NOQUOTES is not set

// "‘" (single quote) becomes ‘'‘ (or ') only when ENT_QUOTES is set

// ‘

// ‘>‘ (greater than) becomes ‘>‘

return htmlspecialchars($data, ENT_QUOTES, $encoding);

}

//中级难度的防御,addslashes,转义单双引号和反斜杠,但是不使用单双引号的,防不住的。

function xss_check_4($data)

{

// addslashes - returns a string with backslashes before characters that need to be quoted in database queries etc.

// These characters are single quote (‘), double quote ("), backslash (\) and NUL (the NULL byte).

// Do NOT use this for XSS or HTML validations!!!

return addslashes($data);

}

绕过

//一般payload

//绕过过滤单双引号的

1

//伪协议

//绕过关键字检查,大小写变化和无意义(注释、空字符、空格、回车、tab)截断

link//规避关键字

//长度限制

//绕过尖括号检查,编码、多重编码

%3cscript%3ealert(1)%3c%2fscript%3e

//标签检查,一重去除标签

ipt>alert("XSS")ipt>

/*闭合标签

>

‘> 或者 ">

‘ 或者 "

标签闭合

*/

//终极过滤

可以进行xss的标签

...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值