关于汤青松:高效率开发Web安全扫描器之路一

一、背景常常看到一些SRC和CNVD上厉害的大佬提交了很多的破绽,始终好奇它们怎么能挖到这么多破绽,开始还认为它们不下班除了睡觉就挖破绽,起初有机会意识了一些大佬,发现它们大部分破绽其实是通过工具开掘的,比如说上面是CNVD下面的白帽子大佬 我想成为大佬要怎么做 我始终感觉本人是一个有幻想的人,我也想有一天本人的ID能呈现在排行榜中,于是我凭借着本人那一点开发常识,认真钻研了一下市面上的平安工具,以及怎么开发平安工具。 平安工具剖析通过我得钻研发现市面上的平安工具其实只有两类,一类是面向某个破绽的工具比方SQLMap,另外一个一类是综合扫描工具,比方AWVS; 作为一个只想挖破绽的我,我更偏差于综合型的扫描器开发,可是综合型的扫描器开发难度真的很大,要清晰地理解各种破绽的原理,而且还须要把他们应用代码去实现,如果是我一个人从头开发我压根做不到啊。 但我并不打算放弃,我筹备集结天下之利器,为我扫描器所用;现实是有了,但事实是我要怎么实现,这可实在苦恼了我。 二、 要做的货色我想要做的扫描器外围目标就是要应用简略,另外就是我能够得心应手的批改;我心愿是我只有给他一个URL地址,它就能够帮我扫描网站的破绽,以及这个主机自身的破绽 粗疏的拆解了一下,我感觉最须要的性能有这几个 能主动收集URL地址,爬虫收集和爆破收集能从URL中提取主机IP能疾速检测常见的热门POC能自动识别网站的指纹信息能对IP进行端口疾速扫描能对端口的banner辨认出服务能检测出SQL注入破绽能检测出反射性XSS破绽可能通过指纹信息,应用对应的POC工具可能疾速扩大性能,且不影响整体逻辑第一版本差不多就是这些性能吧,性能尽管不算多,但如果齐全从头开始实现开发工夫可不少。 三、思路剖析为了达到高效率的同时又能自主可控,我决定做一个有程度的缝合侠,简略了解就是我要把很多工具奇妙的融入到我开发的工具来,这里须要思考的第一个问题是每个工具的应用办法、输出的参数、输入的后果都是不一样的,工具A的后果工具B不肯定意识。 要解决这个问题,说简略也简略说难也难,总之我是摸着石头过河胜利了;原理是本人给每个工具做一个壳,内部要调用工具A须要先调用工具A的壳,而后才会传到工具A,当工具A返回了后果,工具A的壳也会最先拿到,而后将后果解析进去并依照对立的格局输入就能够了。 通过这个简略的方法,我相当于把其余的平安工具变成了我得一个函数,我须要的时候调用这个函数就能够了。 依照我后面提到的需要,我梳理了一下要试用的工具有这几个: 序号 序号需要工具1.爬去URL的有RAD2.爆破URL的有DIRMAP3.提取主机IP正则4.疾速检测热门POCxray5.辨认网站的指纹dismap6.对IP端口疾速扫描masscan7.能对端口的banner辨认出服务nmap8.能检测出SQL注入破绽sqlmap9.能检测出反射性XSS破绽xsser这些工具都是比拟常见的工具,我第一步须要对他们的应用办法相熟,以xray工具为例 xray的应用命令如下所示 ./xray_linux_amd64 webscan --url "http://192.168.1.100/" --json-output /tmp/11.json当xray执行结束之后,他会将后果输入到指定地位,然而数据格式并不是我所冀望的,我须要将它的格局读入,而后再转换成我所须要的格局。 这里我用PHP写了一个简略的脚本,他做了这几件事件: 定义了参数起源地位和后果输入地位获取参数中的URL,并执行xray工具获取xray的执行后果,并解析成自定义格局将最终的后果写入到输入地位代码示例如下所示 <?php//获取输出的参数$inputFile = "/data/share/input_".getenv("xflow_node_id").".json";$outputFile = "/data/share/output_".getenv("xflow_node_id").".json";//没有input,间接返回if (!file_exists($inputFile)) { var_dump($outputFile, json_encode(['code' => 0, 'msg' => "{$inputFile}文件不存在", 'data' => []], JSON_UNESCAPED_UNICODE)); return 0;}//读取上游数据$inputData = json_decode(file_get_contents($inputFile), true);$url = $inputData['url'];$data = execTool($url);//将后果写入到指定地位,供蜻蜓平台导入数据file_put_contents($outputFile, json_encode($data, JSON_UNESCAPED_UNICODE));//将工具执行function execTool($url){ $hash = md5($url); $resultPath = "/tmp/{$hash}/tool.json"; //清理之上一轮的后果 if (file_exists($resultPath)) unlink($resultPath); //创立文件夹 if (!file_exists(dirname($resultPath))) { mkdir(dirname($resultPath), 0777, true); } $result = []; $toolPath = "/data/tools/xray"; if (!file_exists($toolPath)) die("xray 工具目录不存在:{$toolPath}"); $path = "cd $toolPath && "; // 通过系统命令执行工具 $cmd = "{$path} ./xray_linux_amd64 webscan --url \"{$url}\" --json-output {$resultPath}"; echo $cmd; exec($cmd, $result); $toolResult = file_exists($resultPath) ? file_get_contents($resultPath) : '[]'; $toolResult = json_decode($toolResult, true); print_r($toolResult); return $toolResult;}再来sqlmap封装的例子,首先须要晓得sqlmap的应用的办法,如下所示 ...

November 30, 2022 · 2 min · jiezi

关于汤青松:Rad爬虫结合W13Scan扫描器挖掘漏洞

一、背景这几天始终在钻研W13Scan破绽扫描器,因为对Python不是太相熟,所以进度有点慢,始终没看懂怎么将代理申请的数据转发到扫描队列中去,决定先相熟相熟这个性能再说;Rad爬虫最近比拟火,于是就是就抉择它了 W13scan 是基于Python3的一款开源的Web破绽发现工具,它反对被动扫描模式和被动扫描模式,能运行在Windows、Linux、Mac上。二、搭建靶场在扫描之前咱们须要筹备一个靶场零碎,这里我抉择的是permeate浸透测试零碎,搭建办法在之前的文章曾经写过了,这里就不再从新赘述,文章地址:https://segmentfault.com/a/11... ,这里有几条要害的命令 搭建一个Mysql数据库,执行命令如下 docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123 -d -i -p 3309:3306 mysql:5.6搭建permeate,执行命令如下 docker run --name permeate_test --link mysqlserver:db -d -i -p 8888:80 daxia/websafe:latest启动nginx和php-fpm,执行命令如下 docker exec permeate_test zsh -c "php /root/start.php"下面的命令执行结束之后,咱们就能够拜访靶场零碎了,关上的网址为 http://youIp:8888/index.php应用浏览器拜访的界面如下图所示 在上图中能够看到曾经显示了区块和板块,阐明搭建胜利,如果没有显示区块,有可能是数据库地址填写的不对,认真看看装置文章就好了。 三、启动代理接下来咱们须要把W13Scan应用代理服务模式启动,启动的命令如下所示 python3 W13SCAN/w13scan.py -s 0.0.0.0:7777命令执行结束之后,命令窗口会返回如下图所示信息 在上图中咱们能够看到服务曾经启动了,并提醒扫描后果会寄存在当前目录下的./W13SCAN/output/12_03_2020/目录中,咱们暂且晓得有这样一个目录即可。 四、启动爬虫接下来我就须要将我的申请都转发到W13Scan破绽扫描器中,因为我是不晓得permeate浸透测试零碎有多少个页面的,而且人工去找速度慢不说,也不太事实; 为了疾速排查整个站点的平安状况,所以用上了RAD爬虫去抓取整个网站的链接,同时将他的代理地址设置W13Scan的代理服务地址,这样就相当于让让W13Scan扫描器去扫描了整个站点。 启动rad爬虫并设置代理地址的命令如下所示 .\rad_windows_amd64.exe -t http://192.168.152.135:8888/home/index.php --http-proxy 127.0.0.1:7777执行RAD爬虫命令之后,窗口返回的后果如下图所示 在命令执行窗口中咱们能够看到RAD爬虫曾经抓取到了局部的链接地址,阐明咱们的命令是正确的,晚一点再去./W13SCAN/output/12_03_2020/目录中查看扫描后果就好了 如果不想应用rad爬虫,也能够把浏览器的代理地址设置为127.0.0.1:7777,而后本人去点击一些页面,这样就能够对你正在浏览的网站进行安全漏洞扫描,这里我就不必浏览器演示了;五、查看后果扫描一段时间之后,在W13Scan扫描器的执行窗口中,我也看到扫描到安全漏洞的提醒,但比拟简要。 这里我间接去查看w13scan扫描器的扫描后果,关上扫描后果的执行文件如下所示 在上图中咱们能够看到,扫描到了9个破绽,别离有XSS、JS文件敏感内容匹配、.git泄露等类型。 有了这个W13Scan咱们很多时候能够躺着去挖洞了,^_^ 作者: 汤青松 日期:2020-12-04

December 4, 2020 · 1 min · jiezi