发表时间:2021-07-09 17:04:32 来源:红帽社区 浏览:
次 【
大】【
中】【
小】
前端时间看moonsec的直播代码审计,今天下载来复现一波。下载地址:https://www.lanzous.com/i53acdi
丢进seay审计一下吧
挺多的,一个个看吧,先看SQL注入吧
来看一下源码
这里的outtradeon、gid、money、rel、type、number参数都是通过POST传输的,然后带入了insert into 插入数据库,除了outtradeon都有_if,然后去 if/function.php文件中看到了这个_if
可以看到这里是对一些字符进行替换来达到防御的效果,不过没过滤单引号,所以还是可以尝试一下注入,抓包试一下
需要注意的是这里上面有限制包头类型 X-Requested-With: XMLHttpRequest 如果没有页面返回不会是正常的
这里是正常的包(输出sql语句是因为我在源码中echo了),我们可以丢sqlmap跑一下试一下
果不其然失败了,手工测试吧。上面说到了除了outtradeon其他都有过滤,那么这里就测试outtradeon参数吧。
单引号报错,尝试正常注入
提示ok,去数据库看一下
可以看见库名出现了,还得进数据库看有点鸡肋了,这里可以用dnslog盲注
admin/search.php 这里看到POST传入了kind和value分别赋值给了type和txt,之后没做过滤便带入了sql查询。
burp抓包尝试
这里是正常返回,加个单引号,然后用seay的mysql监控看一下语句(前面也是看这个来测试,好用)
可以看到没有返回数据了,而在监控中可以看到有%,闭合一下
这里可以用盲注
/template/zongzi/query.php 这里可以看到在input标签中有一段PHP代码
GET获取out_trade_no并且没有过滤就输出。
前面第一个SQL注入的时候测试insert into 测试了半天都不行,然后去百度了一下,才发现是用逗号隔开。。。 然后测试盲注的时候,在mysql中没问题,去注入的时候就不知道咋回事不行了,尴尬。还有直播有讲文件包含,复现失败,不知道什么原因
应该还有其他的漏洞,没审计出来。总的来说就是太菜了,果然还是得多动手去实践才知道问题所在。
<h1><a id="_0"></a>发卡网代码审计</h1>
<h2><a id="
2020310_2"></a>这是前段时间写的,今天发一下记录一下吧,怕以后找不到了<br />
2020-3-10</h2>
<h1><a id="0x00__6"></a><strong>0x00 前言</strong></h1>
<p>前端时间看moonsec的直播代码审计,今天下载来复现一波。下载地址:https://www.lanzous.com/i53acdi</p>
<h1><a id="0x01__12"></a><strong>0x01 代码审计</strong></h1>
<p><img src="http://imgsrc.baidu.com//super//pic//item//902397dda144ad34d9c66cdedfa20cf431ad856a.jpg" alt="enter image deion here" /></p>
<p>丢进seay审计一下吧</p>
<p><img src="http://imgsrc.baidu.com//super//pic//item//c8177f3e6709c93da1a0e5ae903df8dcd100541d.jpg" alt="" /></p>
<p>挺多的,一个个看吧,先看SQL注入吧</p>
<p><img src="/attachment/editor/210709/0b46f21fbe096b63afdfb50903338744eaf8aca1.png" alt="" /></p>
<p>来看一下源码</p>
<p><img src="/attachment/editor/210709/a686c9177f3e670919c6aea634c79f3df9dc55a1.png" alt="" /></p>
<p>这里的outtradeon、gid、money、rel、type、number参数都是通过POST传输的,然后带入了insert into 插入数据库,除了outtradeon都有_if,然后去 if/function.php文件中看到了这个_if</p>
<p><img src="/attachment/editor/210709/0824ab18972bd407c69639a474899e510fb30912.png" alt="" /></p>
<p>可以看到这里是对一些字符进行替换来达到防御的效果,不过没过滤单引号,所以还是可以尝试一下注入,抓包试一下</p>
<p>需要注意的是这里上面有限制包头类型 X-Requested-With: XMLHttpRequest 如果没有页面返回不会是正常的</p>
<h1><a id="0x02__36"></a><strong>0x02 漏洞测试</strong></h1>
<p><img src="/attachment/editor/210709/e7cd7b899e510fb3f6da9cced633c895d0430cac.png" alt="" /></p>
<p>这里是正常的包(输出sql语句是因为我在源码中echo了),我们可以丢sqlmap跑一下试一下</p>
<p><img src="/attachment/editor/210709/b21c8701a18b87d6000f4146080828381f30fd1e.png" alt="" /></p>
<p>果不其然失败了,手工测试吧。上面说到了除了outtradeon其他都有过滤,那么这里就测试outtradeon参数吧。</p>
<p><img src="/attachment/editor/210709/b64543a98226cffc0c8155ebb6014a90f703eac4.png" alt="" /></p>
<p>单引号报错,尝试正常注入</p>
<p><img src="/attachment/editor/210709/e1fe9925bc315c60993381b682b1cb13485477c1.png" alt="" /></p>
<p>提示ok,去数据库看一下</p>
<p><img src="/attachment/editor/210709/8601a18b87d6277fb69cd86127381f30e824fcd9.png" alt="" /></p>
<p>可以看见库名出现了,还得进数据库看有点鸡肋了,这里可以用dnslog盲注</p>
<p><img src="/attachment/editor/210709/7af40ad162d9f2d36fe4ceb6a6ec8a136227ccf6.png" alt="" /></p>
<p><img src="/attachment/editor/210709/d52a2834349b033b3c1216831ace36d3d439bdd5.png" alt="" /></p>
<h1><a id="0x03_SQL_62"></a><strong>0x03 后台搜索SQL注入</strong></h1>
<p><img src="/attachment/editor/210709/03087bf40ad162d9c51088451edfa9ec8b13cde9.png" alt="" /></p>
<p>admin/search.php 这里看到POST传入了kind和value分别赋值给了type和txt,之后没做过滤便带入了sql查询。</p>
<p>burp抓包尝试</p>
<p><img src="/attachment/editor/210709/7e3e6709c93d70cfebe87f54f7dcd100baa12b5d.png" alt="" /></p>
<p>这里是正常返回,加个单引号,然后用seay的mysql监控看一下语句(前面也是看这个来测试,好用)</p>
<p><img src="/attachment/editor/210709/e7cd7b899e510fb3f7c99dced633c895d0430c93.png" alt="" /></p>
<p>可以看到没有返回数据了,而在监控中可以看到有%,闭合一下</p>
<p><img src="/attachment/editor/210709/48540923dd54564e265d3160bcde9c82d1584fab.png" alt="" /></p>
<p>这里可以用盲注<br />
<img src="/attachment/editor/210709/b17eca8065380cd7ead248b4ae44ad345882819f.png" alt="" /></p>
<h1><a id="0x04_xss_84"></a><strong>0x04 反射性xss</strong></h1>
<p><img src="/attachment/editor/210709/e7cd7b899e510fb3f969a3ced633c895d1430c73.png" alt="" /></p>
<p>/template/zongzi/query.php 这里可以看到在input标签中有一段PHP代码<br />
GET获取out_trade_no并且没有过滤就输出。<br />
<img src="/attachment/editor/210709/42166d224f4a20a40c6ce89e9f529822720ed07d.png" alt="" /></p>
<h1><a id="center0x04__94"></a><center><strong>0x04 总结</strong></h1>
<p>前面第一个SQL注入的时候测试insert into 测试了半天都不行,然后去百度了一下,才发现是用逗号隔开。。。 然后测试盲注的时候,在mysql中没问题,去注入的时候就不知道咋回事不行了,尴尬。还有直播有讲文件包含,复现失败,不知道什么原因</p>
<p><img src="/attachment/editor/210709/4a36acaf2edda3ccf4476c790ee93901203f92cc.png" alt="" /></p>
<p>应该还有其他的漏洞,没审计出来。总的来说就是太菜了,果然还是得多动手去实践才知道问题所在。</p>
责任编辑:
声明:本平台发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。