零基础封神!10行代码写渗透专用爬虫,一键扫遍靶场敏感资产
零基础封神10行代码写渗透专用爬虫一键扫遍靶场敏感资产上一篇我们一起打破了认知壁垒焊死了合规红线用3行代码跑通了第一个渗透型爬虫。很多粉丝后台私信我说第一次跑通代码看到命令行里打印出靶场所有链接的时候那种实打实的成就感比啃了半年理论书都强。还有很多人问能不能再教点更实用的比如怎么快速找到网站的后台怎么扫出隐藏的敏感文件我太懂这种需求了。我刚入门的时候也踩过一模一样的坑想找网站后台手动一个个试admin、login、manage试了几十次都不对用现成的扫描工具扫出来几百个结果90%都是404无效垃圾数据还有一堆看不懂的路径我根本不知道哪个是真的后台哪个是没用的噪音折腾了一下午啥也没找到差点就放弃了。今天这篇我就带你用10行核心代码写一个属于你自己的渗透专用目录扫描爬虫精准定位后台、备份文件、robots.txt这些渗透核心目标没有垃圾结果没有看不懂的输出新手复制粘贴1分钟就能跑通直接拥有自己的第一个渗透工具。痛点破局为什么现成工具反而不如自己写的10行代码好用很多新手上来就问“大佬有没有最好用的扫描工具给我发一个。”但你有没有发现那些号称“全能”的扫描工具对你这种新手来说反而特别难用垃圾结果太多工具为了覆盖所有场景会扫几万条路径出来90%都是404你要一个个筛选筛选到吐定制化太差你只想扫后台和备份文件它非要给你扫一堆没用的插件路径你想改都不知道从哪下手特征太明显很多工具的请求头、请求频率早就被WAF拉黑名单了你还没扫完IP就被封了看不懂原理工具扫出来结果你也不知道它是怎么扫的为什么这个路径是有效的下次遇到新场景你还是不会。而我们自己写的渗透型目录扫描爬虫完全不一样我们不追求大而全只精准打我们关心的核心渗透目标结果干净没有垃圾我们想加什么路径就加什么想怎么过滤就怎么过滤完全定制化我们可以自己控制请求频率、请求头不会被WAF拦也不会打崩靶场每一行代码都是你自己写的你完全懂它的原理下次遇到新场景你自己就能改。核心原理精讲5分钟搞懂目录扫描到底是个啥在写代码之前我先给你把底层逻辑讲透零基础也能听懂保证你知其然也知其所以然。什么是目录扫描说白了就是我们提前准备好一份常见的敏感路径列表业内叫“字典”然后我们拿着这份列表一个个去问服务器“你有没有这个路径啊”服务器会给我们返回一个状态码我们根据状态码就能判断这个路径到底存不存在200 OK路径存在而且我们能正常访问这就是我们要找的核心目标403 Forbidden路径存在但是服务器不让我们访问说明这个路径是真的只是我们没权限也是有效结果301/302 Found路径存在但是会跳转到别的页面比如后台登录页没登录就会跳转到登录页也是有效结果404 Not Found路径不存在直接过滤掉不用管。我们的核心逻辑精准打击拒绝垃圾普通的工具是拿着几万条的大字典一个个扫扫完把所有结果都给你。而我们的渗透型爬虫入门阶段只拿最常见的20条核心路径来扫后台路径admin、login、manage、system、admin.php、login.html这些敏感文件robots.txt、phpinfo.php、web.config、.git、.env这些备份文件backup.zip、wwwroot.zip、site.bak、sql.sql、database.sql这些。这些都是渗透测试中最有价值的目标我们只扫这些所以速度快结果干净没有垃圾新手一眼就能看懂。保姆级实战10行代码写一个能跑的扫描爬虫话不多说直接上代码。全程都是在我们上一篇搭建的本地DVWA靶场运行100%合法合规没有任何法律风险新手复制粘贴就能直接跑通。基础版10行核心代码极简实现这是我们的核心版本只有10行代码没有任何复杂依赖逐行注释零基础也能看懂每一行在干嘛importrequests# 目标地址仅为本地搭建的DVWA靶场禁止替换为任何未授权第三方网站targethttp://localhost/dvwa/# 入门级敏感路径字典只包含最高价值的核心目标dict_list[admin,login,login.php,robots.txt,phpinfo.php,backup.zip,.git,manage,system,web.config]# 核心扫描逻辑forpathindict_list:urltarget.rstrip(/)/pathtry:rrequests.get(url,timeout5)ifr.status_code!404:print(f[] 发现有效路径{url}状态码{r.status_code})except:pass逐行讲解零基础也能看懂我给你把每一行的作用都讲清楚保证你不是只会复制而是真的懂import requests导入我们上一篇安装的requests库用来发送HTTP请求target http://localhost/dvwa/我们的目标就是上一篇搭建的本地靶场绝对不能改第三方地址dict_list我们的字典就是我们要测试的路径列表都是最常见的敏感路径入门足够用了for path in dict_list:循环把我们字典里的每个路径都拿出来测一遍url target.rstrip(/) / path拼接完整的URLrstrip(/)是把目标末尾的斜杠去掉防止出现http://localhost/dvwa//admin这种错误保证路径拼接正确try:异常捕获防止某个路径请求出错导致整个脚本崩溃r requests.get(url, timeout5)给这个URL发请求timeout5是说如果5秒没响应就放弃这个路径防止脚本卡着不动if r.status_code ! 404:如果状态码不是404说明这个路径是存在的我们就打印出来except: pass如果请求出错了比如网络断了就跳过这个路径不要让整个脚本崩掉。运行步骤1分钟出结果新建一个文本文档把上面的代码复制进去重命名为dir_scan.py打开命令行进入这个文件的文件夹输入命令运行python dir_scan.py按下回车等待10秒你就能看到结果了正常情况下你会看到类似这样的输出[] 发现有效路径http://localhost/dvwa/login.php 状态码200 [] 发现有效路径http://localhost/dvwa/robots.txt 状态码200 [] 发现有效路径http://localhost/dvwa/phpinfo.php 状态码200看到了吗只用了10行代码你就一键扫出了靶场的后台登录页、robots.txt、phpinfo这些核心渗透目标没有任何垃圾结果所有结果都是有用的比那些工具好用10倍。进阶优化3个技巧让你的脚本稳到离谱基础版的脚本已经能用了但是还有一些小问题比如网络波动会丢包或者被WAF拦截我们加3个小优化让你的脚本更稳更实用。优化1加超时重试解决网络波动丢包有时候网络不好一个请求没发出去脚本就直接跳过了我们加个重试机制失败了就再试一次保证不会漏掉有效路径fromrequests.adaptersimportHTTPAdapterfromurllib3.util.retryimportRetry# 创建一个带重试的会话sessionrequests.Session()retryRetry(total2,backoff_factor0.1)session.mount(http://,HTTPAdapter(max_retriesretry))session.mount(https://,HTTPAdapter(max_retriesretry))# 把原来的requests.get换成session.getrsession.get(url,timeout5)优化2加浏览器UA避免被WAF拦截默认的requests请求头UA是python-requests/2.28.1太明显了WAF一眼就能认出这是爬虫直接给你封了。我们改成浏览器的UA模拟正常用户访问就不会被拦了# 模拟Chrome浏览器的请求头headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36}# 发送请求时带上请求头rsession.get(url,headersheaders,timeout5)优化3加请求延迟防止打崩靶场新手最容易犯的错就是上来就疯狂发请求一秒发20个结果直接把本地Apache服务器打崩了靶场直接打不开还要重启服务。我们加个0.1秒的延迟每次请求完停一下既不会影响速度也不会打崩靶场importtime# 每次请求后延迟0.1秒time.sleep(0.1)优化后的完整代码把这三个优化加进去就是我们最终的稳定版脚本新手直接用这个就行importrequestsimporttimefromrequests.adaptersimportHTTPAdapterfromurllib3.util.retryimportRetry# 目标地址仅为本地搭建的DVWA靶场禁止替换为任何未授权第三方网站targethttp://localhost/dvwa/# 入门级敏感路径字典只包含最高价值的核心目标dict_list[admin,login,login.php,robots.txt,phpinfo.php,backup.zip,.git,manage,system,web.config,.env]# 模拟Chrome浏览器的请求头headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36}# 创建带重试机制的会话sessionrequests.Session()retryRetry(total2,backoff_factor0.1)session.mount(http://,HTTPAdapter(max_retriesretry))session.mount(https://,HTTPAdapter(max_retriesretry))print(*50)print(开始扫描靶场敏感路径...)print(*50)# 核心扫描逻辑forpathindict_list:urltarget.rstrip(/)/pathtry:rsession.get(url,headersheaders,timeout5)ifr.status_code!404:print(f[] 发现有效路径{url}状态码{r.status_code})time.sleep(0.1)exceptExceptionase:passprint(*50)print(扫描完成)print(*50)实战验证一键扫出靶场所有敏感资产我们把这个优化后的脚本在DVWA靶场跑一遍看看效果 开始扫描靶场敏感路径... [] 发现有效路径http://localhost/dvwa/login.php 状态码200 [] 发现有效路径http://localhost/dvwa/robots.txt 状态码200 [] 发现有效路径http://localhost/dvwa/phpinfo.php 状态码200 [] 发现有效路径http://localhost/dvwa/.git/config 状态码200 扫描完成 看到了吗10秒不到我们就扫出了4个核心敏感资产login.php靶场的后台登录页这就是我们要找的后台入口robots.txt网站的爬虫协议里面通常会藏着网站不想让搜索引擎爬的隐藏路径打开就能看到phpinfo.phpPHP信息页面里面会泄露服务器的所有配置信息甚至数据库密码是高危的敏感文件.git/configGit配置文件说明网站的.git目录泄露了我们可以直接把整个网站的源码下载下来这是超级高危的漏洞。这些结果全都是渗透测试中最有价值的目标比那些工具扫出来的一堆404有用太多了。而且整个过程你只用了10行核心代码就拥有了自己的专属渗透工具。避坑指南新手写扫描爬虫最容易踩的5个坑我带过很多新手发现大家写这个脚本的时候总会踩同样的坑我给你整理出来你直接避开坑1频率过快直接打崩靶场很多新手觉得速度越快越好不加延迟一秒发几十个请求结果直接把本地Apache服务器打崩了靶场直接打不开还要重启服务。避坑方法一定要加延迟入门阶段0.1秒一次就够了哪怕扫200个路径也才20秒完全够快不会打崩靶场。坑2默认UA被WAF一键拦截很多人用默认的requests UA扫着扫着IP就被靶场的WAF封了所有请求都返回403还不知道为什么。避坑方法一定要加浏览器UA模拟正常用户WAF就不会拦你了上面的优化代码已经帮你加好了。坑3路径拼接错误扫半天啥也找不到比如目标是http://localhost/dvwa路径是admin结果拼接成http://localhost/dvwaadmin少了个斜杠所有路径都错了扫半天全是404还以为是靶场的问题。避坑方法用target.rstrip(/) / path来拼接不管目标末尾有没有斜杠都能拼对上面的代码已经帮你处理好了。坑4用超大字典扫几个小时没结果新手上来就找那种几万行的大字典想着扫的越全越好结果扫了几个小时还没扫完早就没耐心了而且还容易打崩靶场。避坑方法入门阶段就用我们给的20条小字典先拿到结果建立信心等你熟练了再慢慢加字典循序渐进。坑5乱扫第三方网站踩了法律红线这个是最致命的很多人写完脚本就想去扫公网的网站试试手结果直接踩了《刑法》285条的红线把自己送进去了。避坑方法永远记住所有的测试都只能在你自己搭建的本地靶场或者有对方书面授权的目标上做公网的任何网站没授权都绝对不能碰这个红线焊死在脑子里。结尾福利 下期预告恭喜你看到这里你已经写出了自己的第一个渗透工具用10行代码实现了目录扫描一键扫出靶场的所有敏感资产已经超过了90%只会用别人工具的脚本小子。下一篇文章我会带你把这个爬虫彻底升级变成一个全功能的信息收集神器自动爬取子域名、识别网站指纹、扫描敏感信息泄露一键搞定渗透测试第一步的全量信息收集让你不用再一个个工具凑一个爬虫就够了。粉丝专属互动现在把你的脚本运行结果贴在评论区我会抽3位粉丝免费帮你优化定制专属脚本如果你想加自定义的扫描路径我帮你加如果你想加并发加速我帮你改如果你想适配你自己的靶场我帮你调。如果你想跟着我从零基础开始一步步打造自己的渗透工具栈形成自己的挖洞思路一定要点赞收藏关注不然刷着刷着就找不到这个系列教程了。网安之路底线为先实战为王。我们下一篇文章不见不散。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2477361.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!