bugku INSERT INTO注入(基于时间的盲注,详细教程)

本文详述了如何进行SQL注入攻击,特别是基于时间的盲注。通过分析一个在线练习平台的题目,解释了如何识别注入点、绕过限制、利用information_schema表获取数据库信息,以及使用group_concat函数进行数据爆破。文章涵盖了注入的基本步骤,从爆库到爆字段内容,是理解SQL注入技巧的实用教程。
摘要由CSDN通过智能技术生成

题目

在这里插入图片描述
链接地址:http://123.206.87.240:8002/web15/

分析

打开页面后:
在这里插入图片描述
分析页面的php代码
在这里插入图片描述
通过源码分析,
注入点在x-forwarded-for:client,proxy1,proxy2的client处。关于XFF移步博文
获取用户ip,并把ip插入到client_ip表中的ip列中
因为源码第一行,关闭了错误报告,所以没有回显。在此采取基于时间的盲注。

基于时间盲注的常用函数

sleep() //延迟函数
BENCHMARK(count,expr)函数 //将expr语句执行count次来达到延迟的目的
if(condition,true,false) //条件语句
If表达式:IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3
ascii() //转换成ascii码
substring(“string”,strart,length) //mid()也一样,取出字符串里的第几位开始,长度多少的字符
Mid函数:MID(column_name,start[,length])

选择合适函数绕过

本题中,源码里对ip这个注入点进行了“,”过滤,所以if表达式不再适用
在此采用 case when exp1 then sleep(5) else 1 end 来绕过对“,”的限制
因为exp1会用到substr来进行剪切,而substr(str,start,length)也存在“,”,于是采用substr (str) from start for length 来绕过对“,”的限制

与盲注相关数据库知识

information_schema 是mysql中的信息数据库。保存着关于mysql服务器所维护的所有其他数据库的信息
在这里插入图片描述
在infomation_schema中有几个很重要的表
在这里插入图片描述

SCHEMATA表

SCHEMATA表:提供了当前mysql实例中所有数据库的信息
SCHEMA_NAME记录着所有数据库名
在这里插入图片描述

TABLES表

tables表:提供了当前数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。
在这里插入图片描述
TABLE_SCHEMA中记录着数据库名,TABLE_NAME中记录该数据库的所有表名
是**show tables form schema_name**的结果取之此表

COLUMNS表

在这里插入图片描述
columns表提供了表中列的信息,详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表

TABLE_SCHEMA记录数据库信息,
TABLE_NAME记录表信息,
COLUMN_NAME记录列信息

常用sql语句

select database();  返回当前使用的数据库

在这里插入图片描述

concat(str1,str2)函数,将多个字符串连接成一个字符串。

select concat (col1,col2,...) as info from tables;

在这里插入图片描述

concat_ws()可以指定分隔符

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值