敏感文件探测
在安全测试中敏感文件探测可以帮助我们快速发现目标站点的脆弱性,从这节课起会陆续接触到Python。
-
Python环境配置
- Python语言上手简单,web功能强大,目前有很多Python语言开发的web安全工具。(所以很多web安全爱好者都很喜欢)每当有漏洞出现的时候我们也可以借助Python快速的写出相应的测试程序。
- 访问www.python.org(python官网)(下载相应工具的时候一定要到官方网站去下载,这样才能保证下载的工具是安全的、稳定的)
- 目前python主要有3.5和2.7两个分支
- 安装比较简单,需要注意的是安装路径需要记住
- 安装好后还需要安装环境变量Windows才可以直到python在哪里
- 计算机(右键)→属性→环境变量→新建→添加一个名为“PATH”的环境变量,值为“安装python路径;.;”(C:\Python27;.;)“路径” +“;”+“.”+“;” (意思是从当前路径来查找)
- 验证一下:win+R→cmd→python查看系统是否识别,判断是否安装完成。
-
敏感文件探测原理、实践
- 什么是敏感文件?对于网站来说,就像是网站(网站管理员)的秘密日记,这些文件如果没有保护好被访问者发现了,就有可能暴露站点的脆弱性或保密数据。
- 常见的敏感文件类型:
- 网站管理后台(可以尝试暴力破解)
- 数据文件(数据库等)
- 备份文件(数据库、用户名、密码等)
- Webshell(一旦网站被植入webshell,说明网站被入侵者入侵和控制了)
- 敏感文件探测原理
- 猜测网站可能的文件名,然后根据返回的 HTTP状态码判断文件是否存在
- 200:文件存在
- 301:文件发生跳转
- 404:文件不存在
- 详细的HTTP状态码可以查找相关资料学习
- 猜测网站可能的文件名,然后根据返回的 HTTP状态码判断文件是否存在
- 敏感文件探测实战
- 用“御剑”扫描敏感文件(它只有一个主程序和一个配置文件夹,无需安装,直接可以运行)
- 配置文件夹里面存放的是字典文件
- 软件使用
- 添加目标站点
- 选择判断策略
- 双击选择所需字典
- 开始扫描
- 目标站点(最好自行搭建,网络法很严格,不要因为无知或者一时冲动做出不好的行为,为自己惹来一身麻烦)
- 字典选择(参考)(首次建议字典(4个):ASP.txt 、DIR.txt、MDB.txt、PHP.txt)
- 可以对结果进行查看,从而判断是否有漏洞
-
改进思路
- 首先思考:字典越大越好吗?
- 搜集字典肯定是越大越好
- 实际探测时字典越大花费时间越长
- 搜集字典时最好分门别类整理好,扫描时选择对应的字典
- 问题1:PHP的站点用ASP的字典去扫描不是在做无用功吗?(就是说用ASP的字典扫描PHP脚本编写的网站)
- 肯定啥都扫不到(无用功)
- 如何判断常见网站的脚本类型呢?
- (ASP、PHP、ASPX、JSP等)
- 一个比较简单的办法:判断index的文件类型
- 就是查看网站有哪些后缀格式的index文件(直接去访问这个站点就可以判断)
- 例如:www.baidu.com/index.php(站点存在)
- www.baidu.com/index.asp(站点不存在)
- 初步分析是用php脚本写的,所以选择字典的时候初步就可以做出选择了。
- 问题2:每个网站都有所不同,通用的字典针对性比较差,命中率低(现在大家都要个性化,那我们可以针对目标网站生成针对性的字典呢?)
- 当然可以了,例如
- 构造针对性的备份文件字典
- 目标站点:www.testphp.vulnweb.com
- 可能存在的备份文件名:
- testphpvulnwebcom.rar
- vulnweb.com.rar
- TESTPHP.VULNWEB.COM.rar(这里注意后缀名)
- 可以上网搜索一些Python小程序的源代码:例如(根据URL生成目标备份文件猜测字典)等等,有空了可以看看源码生成字典的思路。
- 构造针对性的备份文件字典
- 当然可以了,例如
- 首先思考:字典越大越好吗?
对于目标站点生成的个性化字典放到御剑的配置文件夹中,打开御剑→批量扫描后台→添加目标站点→选择字典→模式选择head→线程30足够了→超时(看网速,一般10比较合理)→开始扫描
稍等片刻就可以看到扫描结果了
御剑也支持结果导出,把扫描结果导出到文件中(右键导出)
回顾
- Python下载安装、注意配置环境变量
- 敏感文件探测原理和思路的分析
- 敏感文件探测思路改进
课后练习
- 用“御剑”进行敏感文件扫描尝试
- Python环境安装尝试,并运行自己搜集的Python字典生成小程序
- 选做:发现和尝试其他的敏感文件扫描工具(看看都有什么特点)
野兔
2019.2.20