CTF--Web安全--SQL注入之Post-Union注入

一、手动POST注入实现绕过 账号密码检测

我们利用sqli-labs/Less-11靶场来进行演示:

我们可以看到一个登录页面

打开Less-11的根目录,我们打开页面的源代码(PHP实现)。

用VS-code打开文件,找到验证登录信息的代码行。

此形式的代码存在POST注入漏洞。我们可以注入一句万能密码。

sql 复制代码
admin' or 1=1#

单看这句代码可能不是很直观,我们将这句万能密码写到源代码中进行观察。

sql 复制代码
@$sql="SELECT username, password FROM users WHERE username='admin' or 1=1 #' and password='$passwd' LIMIT 0,1";

此时这条SQL语句WHERE后面只有一句有效语句:username='admin' or 1=1,因为 # 在SQL语句中起到注释的作用,username='admin' 和 1=1 二者只要其中有一条成立,那么身份验证就会通过,密码不管填什么都没有关系,因为 # 将密码检测给注释掉了,故不会进行密码检测,账号和密码登录就可以被我们完美绕过了。

如图->利用注入登


二、手动POST注入获取数据库信息

首先打开HackBar,Load导入URL,使用POST方法注入(Use post method)。

利用group by number测试出字段数。

当group by 3时,显示错误:

当group by 2时,显示成功,由此可以获得字段数为2:

获取字段数之后,我们就可以进行POST-Union注入了。首先查看回显位。

找到回显位之后,我们就可以利用回显位来显示数据库的信息,首先查看数据库的库名。

然后从security中获取表名。

接着从user表中获取字段名称(columns)--id,username,password。

最后,获取用户账号密码信息,并在回显位显示出来。


三、利用sqlmap自动进行POST注入

首先利用burpsuite抓包工具,抓取页面post信息。

利用sqlmap命令语句,使用sqlmap自动检测,查找合适的注入点。

sql 复制代码
sqlmap -r C:\Users\lenovo\Desktop\test.txt

sqlmap会给我们列出所有的注入点,我们可以自行选择。

最终利用sqlmap,可以获得用户数据。

相关推荐
优泽云安全7 小时前
如何选择IRCS云信息安全管理系统 IRCS云资源评测
linux·服务器·安全·安全架构
zs宝来了7 小时前
Istio mTLS 与零信任网络:Sidecar 证书管理
安全·devsecops·云安全
豆包公子7 小时前
程序流监控:AUTOSAR CP 功能安全在裸机 MCU 上的实现(理论篇)
运维·单片机·嵌入式硬件·安全·车载系统·autosar
小天互连即时通讯7 小时前
政府及企业场景下如何选即时通讯工具:从安全可控到协同效率的实用判断
安全
m0_738120728 小时前
渗透测试基础ctfshow——Web应用安全与防护(五)
前端·网络·数据库·windows·python·sql·安全
其实防守也摸鱼9 小时前
XSS漏洞全景解析:从原理、实战利用到纵深防御
前端·网络·安全·xss·xss漏洞
逍遥德9 小时前
Java 锁(线程间)和数据库锁(事务间)对比详解
java·数据库·sql·高并发·锁机制
你觉得脆皮鸡好吃吗10 小时前
Check Anti-CSRF Token (AI)
前端·网络·网络协议·安全·csrf·网络安全学习
威迪斯特10 小时前
项目解决方案:某连锁餐饮集团AI后厨与运营安全建设解决方案
人工智能·安全·项目解决方案·ai实时分析·智能餐饮管理·ai视频识别·智能视频分析硬件
数厘11 小时前
2.18 sql排序查询(ORDER BY、ASC、DESC)
数据库·sql·oracle