话本小说网 > 现代小说 > web渗透与安全实战(基础)
本书标签: 现代  黑客 

第三十五课xss攻击4

web渗透与安全实战(基础)

接下来我们要是的是存储型XSS

  我们先把DVWA调到XSS(Stored)(存储型跨站脚本)然后看代码1

相关函数介绍

  trim(string,charlist)

  函数移除字符串两侧的空白字符或其他预定义字符,预定义字符包括、\t、\n、\x0B、\r以及空格,可选参数charlist支持添加额外需要删除的字符。

  mysql_real_escape_string(string,connection)

  函数会对字符串中的特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义。

  stripslashes(string)

  函数删除字符串中的反斜杠。

  可以看到,对输入并没有做XSS方面的过滤与检查,且存储在数据库中,因此这里存在明显的存储型XSS漏洞。

  漏洞利用:

  message一栏输入alert(/xss/),成功弹框:

并且因为是存储型,每次刷新或者进入之后都会弹框。

  name一栏中有长度限制,可以抓包之后再修改数据

  name一栏前端有字数限制,抓包改为alert(/name/):

然后我们看代码2

我们可以看到出这又是个Medium代码:

  相关函数说明

  strip_tags()函数剥去字符串中的HTML、XML以及PHP的标签,但允许使用标签。

  addslashes()函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。

  可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了字符串,仍然存在存储型的XSS。

  漏洞利用:

  抓包双写绕过:ript>alert(/xss/)

成功弹窗:

或者大小写混合绕过:

  alert(/xss/)

  然后我们看代码3

可以看到这是一个HIgh代码

  可以看到,这里使用正则表达式过滤了标签,但是却忽略了img、iframe等其它危险的标签,因此name参数依旧存在存储型XSS。

  漏洞利用:

  抓包改name参数为:

成功弹框

  到此为止我们的xss攻击就已经全部说完了

上一章 第三十四课xss攻击3 web渗透与安全实战(基础)最新章节 下一章 第三十六课认识kalilinux