【第2周】编写Poc小Tips之无损检测

  • A+
所属分类:安全文章

无损扫描这个概念我是在上一年的一个技术沙龙中,听四叶草的拂晓师傅的议题学习到的。百度了下并没有该概念相关介绍,可能是一个小范围使用的术语。参考那个概念我把这个小tips描述为无损检测。无损检测顾名思义就使用Poc去扫描目标站点之后,没有对扫描站点的文件目录,功能结构等进行修改或造成损坏。无损检测可以让Poc更加优雅地检测漏洞。



 0x01 

无损检测的原理与意义



以前我们在检测站点的任意文件上传,任意写文件,RCE等能直接写shell的漏洞时,编写检测Poc,往往先向站点中写一个带有keyword的txt文本。然后再访问该文本,如果该文本存在,且内容为keyword则说明漏洞存在。这是传统的检测方式。

【第2周】编写Poc小Tips之无损检测

传统方式虽然能实现漏洞检测,但是缺点很明显,上传的txt文本残留在了服务器上,系统管理员很容易发现Poc检测过的痕迹,这样的检测是不优美的。而无损检测就是为了解决这个问题。无损检测上传的是无损检测页面脚本,该脚本会先输出keyword,然后自删除,也就是无损检查页面访问一次就自动删除掉了,不会残留在服务器上。

【第2周】编写Poc小Tips之无损检测

通过对比两个时序图,不难发现无损检测只是多了一个5:自删除的步骤。


 0x02 

各种语言版本的无损检测页面源码


当时拂晓师傅在演讲议题时,只是举例了php语言的无损检测页面脚本源码。后来我审计到了一个java开源cms的任意上传漏洞后,在写Poc时困在了没有无损检测页面jsp脚本。在打算为其他语言(asp,aspx,jsp)编写无损检查页面脚本时,拂晓表哥发了个链接。看了下发现Bugscan团队早就已经写好了,顿时感觉自己out了。以下无损检测页面脚本源码来源Bugscan的文档,具体链接放在了文末。


2.1 asp

【第2周】编写Poc小Tips之无损检测访问该文件后输出:

e165421110ba03099a1c0393373c5b43


2.2 aspx

【第2周】编写Poc小Tips之无损检测

访问该文件后输出:

e165421110ba03099a1c0393373c5b43


2.3 php


【第2周】编写Poc小Tips之无损检测

输出:

e165421110ba03099a1c0393373c5b43


2.4 jsp

【第2周】编写Poc小Tips之无损检测

访问该文件后输出:

e165421110ba03099a1c0393373c5b43


2.5 jspx

【第2周】编写Poc小Tips之无损检测

访问该文件后输出:

e165421110ba03099a1c0393373c5b43


 0x03 

一个例子


利用无损检查的思想去编写Poc,会使得检查方式更加优美。下面以我审计出的一个任意文件上传漏洞的poc为例子。


漏洞细节很简单,由于f/upload.action上传页面没在拦截器拦截范围内,导致可以在未登录状态下上传,同时没有对上传成功的后缀进行检查。故存在任意文件上传,上传成功会直接返回文件路径。


根据以上漏洞详情,我们运用无损检测的思想可写出如下Poc。

【第2周】编写Poc小Tips之无损检测



 0x4 

参考文章


http://doc.bugscan.net/chapter3/3-3.html



【第2周】编写Poc小Tips之无损检测


本文始发于微信公众号(回忆飘如雪):【第2周】编写Poc小Tips之无损检测

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: