web安全学习之信息泄露
一.web信息泄露
信息泄露往往是CTF比赛中打开局面的第一把钥匙。攻击者通过寻找服务器配置不当或开发遗留的敏感文件,获取源码、数据库配置甚至Flag。
目录遍历与敏感文件扫描:
当我们在浏览器中访问一个网站时,如果服务器配置不当,攻击者可以通过扫描发现隐藏的目录和文件。
核心工具:
Dirsearch:基于Python开发的强力扫描工具。它通过读取字典(如常见的.bak, .zip, admin等路径)向目标服务器发送请求,通过HTTP状态码(如200)来判断文件是否存在。
常用命令:
python3 dirsearch.py -u http://target.com -e *
御剑后台扫描工具:经典的图形化界面工具,集成了DIR、ASP、PHP等多种脚本路径的扫描
Dirsearch工具:
下载:git clone https://github.com/maurosoria/dirsearch.git
使用教程如下: 1、在终端中打开dirsearch文件夹 cd dirsearch/ 2、输入命令开始网址扫描 python3 dirsearch.py -u 目标网址 -e*
可以通过匹配字典,路径然后发送请求来判断是否有这个文件

- 200:显示200的即是代表存在这个文件
- 403:服务器收到了请求但是拒绝访问,原因一般是权限不足、目录被禁止访问、防火墙拦截等
- 500:服务器对此无响应
- 301:永久重定向的意思,代表这个搬迁到新的地址
御剑:
下载时记得关闭防火墙
1、扫描线程自定义:用户可根据自身电脑的配置来设置调节扫描线程
2、集合DIR扫描 ASP ASPX PHP JSP MDB数据库 包含所有网站脚本路径扫描
3、默认探测200 (也就是扫描的网站真实存在的路径文件)

PHPINFO与配置文件泄露
PHPINFO:开发人员在调试时留下的phpinfo.php文件,往往会暴露服务器的绝对路径、PHP版本、加载模块以及环境变量,这是获取服务器敏感信息的捷径。
备份文件:开发过程中产生的.bak、.swp(vim意外退出生成的交换文件)、.swo以及源码压缩包(.zip, .tar.gz)。这些文件一旦被下载,攻击者即可获得完整的源代码逻辑。
phpinfo泄露:
访问文件目录就可以看到php版本信息

git泄露:
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境,使用这个文件,可以用来恢复源代码。这就引起了git泄露漏洞。
git文件夹结构:
- hook:存放一些sheel的地方
- info:存放仓库的信息
- object:存放所有git对象的地方
- refs:存放提交hash的地方
- config:github的配置信息
- description:仓库的描述信息,主要给gitweb等git托管系统使用
- HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值
工具:
githack:https://github.com/lijiejie/GitHack (需python2环境)
ripper:https://github.com/kost/dvcs-ripper (需perl环境,在信息泄露这方面很全能(包括 SVN, GIT, Mercurial/hg, bzr...))
一般看题目或者页面有没有关于Git的提示,没有的话就靠扫目录发现。 git diff 两两比较不同在有些题目可以得到flag
利用工具访问可以下载文件

SVN泄露:
在服务器上布署代码时。如果是使用 svn checkout 功能来更新代码,而没有配置好目录访问权限,则会存在此漏洞。黑客利用此漏洞,可以下载整套网站的源代码。
工具:
ripper:https://github.com/kost/dvcs-ripper
下载: 1、git clone https://github.com/admintony/svnExploit
2、在物理机下载安装包后解压复制到虚拟机中 使用教程如下: 1、打开终端,进入到SvnExploit的目录下 cd Githack/ 2、运行如下代码 python svnExploit.py http://www.openssl.org(目标网址)/.svn 执行后会在本目录生成以网址为名字的文件夹
其他泄露:
CVS泄露:
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。
Bazaar/bzr:
泄露 bzr也是个版本控制工具, 虽然不是很热门, 但它也是多平台支持, 并且有不错的图形界面。
Bazaar/bzr泄露:
WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
二.SQL 注入基础
原理:
信任用户输入的数据,没有经过安全、合理的方式,直接组成SQL语句,带入数据库执行。 用户数据 => 可执行代码 可执行代码通过直接信道或者间接信道将敏感信息传出来(直接注入,报错注入,盲注,带外查询等)
HTTP请求流程:

mysqli拓展:
- New mysqli初始化mysql对象
- mysqli->select_db 选择数据库
- Mysqli->query 查询数据库
- res->fetch_assoc 获取查询结果
- mysqli->close关闭数据库
PDO拓展:
PDO提供了一套帮助用户实现多种数据库操作的接口
New pdo初始化mysql对象
Pdo string: mysql:host=localhost;dbname=test
pdo->prepare选择数据库
stmt->bindValue绑定参数
stmt->execute执行sql语句
stmt->fetch(PDO::FETCH_ASSOC)获取查询结果
Pdo=null 关闭连接,回收资源 特点:所有类型数据库都可以通用,无需关心后端数据库,引入sql语句预处理,大大降低sql注入的可能性,是SQL注入漏洞修复的有效方案之一。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)