burpSuite及pikachu注入漏洞演示2

本文详细介绍了如何利用burpSuite和Pikachu进行SQL注入漏洞的探测与利用。通过order by猜解字段数,union select获取数据库名和用户名,以及利用information_schema获取更多数据。还探讨了基于函数报错的注入,如updatexml(),并展示了如何在不同场景下构造payload,包括update、delete和HTTP Header注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

union 注入

只有知道正确的字段数才能去拼接union
如何去猜对应查询的字段数:在sql中用order by 进行猜测
order by 1 查询结果按照第一列进行排序
order by 2 查询结果按照第二列进行排序

在实际的猜测中可以用二分法进行测试
用5试一下
在这里插入图片描述
报错
在这里插入图片描述
用3试一下
在这里插入图片描述
不对
在这里插入图片描述
用2试一下
在这里插入图片描述
对了
在这里插入图片描述
证实主查询里只有2个字段
接下来用union去做拼接
xx’union select database(),user()#
查询数据库,用户名成功
在这里插入图片描述
mySQL小知识补充
在这里插入图片描述
information_schema 拿下数据库

先测试是否存在注入点
输入’ 报错 说明我们输入的’被拼接到数据库中去了,所以存在sql注入
猜测是字符型,用 ’ 或 " 进行测试
在这里插入图片描述
遍历表里数据成功
在这里插入图片描述
下面接着获取基础信息
先order by 一下 再用联合查询
确认主查询有2个字段,然后用union
在这里插入图片描述
要先获取基础信息,因为如果想进一步去获取 information_schema 里面的数据,至少要知道当前的数据库实例的名称。所以要先获取当前

### 使用 Burp Suite 拦截分析 Pikachu 请求与响应的方法 当尝试使用 Burp Suite 抓取 Pikachu 平台上的数据流量时,如果遇到无法成功捕获请求的情况,可能涉及多个原因以及解决方法。以下是详细的解决方案: #### 1. 配置浏览器代理设置 确保浏览器已正确配置为通过 Burp Suite 进行通信。通常情况下,Burp 默认监听本地地址 `127.0.0.1` 端口 `8080`。可以通过以下方式验证: - 浏览器的代理设置应指向 `localhost:8080` 或者对应的 IP 地址。 - 如果使用的是无界面环境(如某些虚拟机),需确认目标机器能够解析并连接到运行 Burp 的主机。 对于 Pikatchu 页面点击操作未触发任何请求被捕获的现象,可能是由于代理未生效或者应用本身采用了 HTTPS 加密传输而证书不受信任所致[^1]。 #### 2. 安装 Burp CA 证书 Pikachu 可能启用了 HTTPS 协议保护其网络通讯安全。为了使 Burp 能够解密这些加密流量,则需要安装由 Burp 自动生成的信任根证书至操作系统或浏览器中: - 打开 Burp 套件中的 “CA Certificate” 功能模块; - 下载生成好的 PEM 文件或其他兼容格式文件; - 根据具体使用的客户端设备类型完成导入过程——例如,在桌面版 Chrome/Firefox 上手动加载;而对于 Android/iOS 移动终端则按照官方文档指引执行相应步骤。 一旦完成了上述工作之后再次访问受 SSL/TLS 层级防护的目标站点时,应该可以看到明文形式展现出来的交互细节而非原先被标记为“Secure”的模糊概要信息了[^2]。 #### 3. 排查特殊场景下的漏报情况 即使已经妥善处理好了基础层面的技术障碍后仍然存在个别状况下依旧看不到预期结果的情形发生。此时可以从以下几个角度出发进一步排查问题根源所在之处: ##### (a). JavaScript动态加载内容 部分现代Web应用程序倾向于利用前端框架异步调用远程接口来渲染UI组件而不是一次性提交整个表单再刷新整页的方式呈现最终效果给用户看。这类行为可能会绕过传统意义上的Form Submit机制从而导致我们的工具捕捉不到相关动作产生的HTTP Request/Response Pairings. 解决办法之一就是启用Burp内置Spider爬虫功能自动探测隐藏链接路径;另外也可以借助Intruder插件模拟人工干预发起自定义Payload测试看看能否重现相同现象进而定位确切位置点位在哪里. ##### (b). CORS跨域资源共享策略限制 假设当前正在调试的应用程序遵循严格的CORS政策规定只允许来自特定源域名列表内的请求进入后台服务端逻辑链路当中去的话那么即便我们强行修改Referer Header字段也无法突破这一层屏障实现完全控制权转移的目的. 对此建议先仔细阅读API文档了解清楚哪些参数组合构成合法准入条件然后再针对性调整伪造Header项直至满足所有必要约束为止即可顺利解决问题. ```python import requests url = 'http://example.com/api/resource' headers = { 'Origin': 'http://allowed-origin.com', 'Access-Control-Allow-Origin': '*' } response = requests.get(url, headers=headers) print(response.text) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值