PHP代码审计————10、PHP代码审计之XSS

XSS漏洞大致分为三种

  • 反射型XSS漏洞
  • 存储型XSS漏洞
  • 基于DOM的XSS漏洞

反射型XSS漏洞

它通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行

它的特点是非持久化,必须用户点击带有特定参数的链接才能引起该漏洞的触发

变量直接输出

$_SERVER变量参数

$_SERVER['PHP_SELF']

$_SERVER['HTTP_USER_AGENT']

$_SERVER['HTTP_REQUER']

$_SERVER['REQUEST_URI']

http请求格式

User-Agent:      可以通过User-Agent进行构造XSS

Referer:            可以通过Reference进行构造,主要是burp suite抓包操作,进行修改即可

利用

Ttest:

Cookie:

modify headers

存储型XSS

持久化,代码是存储在服务器数据库中的,如在个人信息或发表文章等地方,加入代码,若干没有过滤或过滤不严,那么这些代码将存储到服务器数据库中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,窃取Cookie等。

审计SQL语句:

主要是update 、insert更新和插入语句。

内容输入输出没有被严格过滤或者过滤不严!

防御

htmlspecialchars函数

预定义的字符是:

&  ——————&

"———————"

'———————'

<———————<

>———————>

例如:

表:

CREATE TABLE `book` (
`id` int(5) NOT NULL auto_increment,
`title` varchar(32) NOT NULL,
`con` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;

";
}
}
}
?>

暗月代码审计存储型 xss 漏洞演示

标题:
内容:


你可能感兴趣的:(【信息安全】,【代码审计】,———代码审计系列)