加了料的报错注入(实验吧)

刚学到了一种新的注入方法,在此记录分享以便加深记忆。

是实验吧里的一道sql注入题,在本文中,用两种方法来解这道题:

1.HPF(HTTP Parameter Fragment)

2.exp()报错注入

先来说HPF(http分割注入),首先看这道题 题目地址

查看源码我们发现:

根据题目要求,应该是post注入,然而没有登陆框,我们先通过hackbar按照要求传入username和password参数试试。

提示login failed ,说明我们的思路是没错的,接下来就是在这两个参数中寻找输入点,分别试了username=1‘&password=1和username=1&password=1‘,发现都报错,说明这两个参数都存在注入点。接下来经过简单的测试发现,该题过滤了#-:=字符,接下来尝试哪些报错函数可用,发现当username参数后面加括号时提示User name unknow error,而password参数后加括号则提示Login failed。说明username参数过滤了(),且username参数后报错注入的函数并没有过滤,而在password参数后面只能执行exp()函数。所以我们首先通过http分割注入的方法来解这道题(由于我的hackbar有问题我就转移到burp中来做了)

查询数据库发现名字为 error_based_hpf ,说明作者的意图就是要求利用http分割注入。接下来就是查询表,字段,和flag了。由于过滤了 “=”,所以我们采用正则的方式来绕过,即利用regexp。

利用exp()进行报错注入:

由于该题要利用正则来代替“=”,所以作者并没有过滤掉exp()函数,因此导致我们可以在password参数后直接利用exp()函数进行getflag。具体就不多说了,直接看结果。

看别人的wp学习了新的姿势,其实还可以利用盲注getflag,但是由于本题过滤了substr,mid等等截取字符串的函数,所以只能用正则regexp配合$从后向前盲注,比较麻烦我就不说了。

希望有一天成为自己想成为的人,共勉。

原文地址:https://www.cnblogs.com/s1ye/p/8284806.html

时间: 2024-07-29 23:19:12

加了料的报错注入(实验吧)的相关文章

实验吧web加了料的报错注入

知识点: SQL注入中用到的Concat函数详解    http://www.sohu.com/a/219966085_689961 http分割注入 直接根据提示,提交post请求的用户名和密码 结果显示 换成 username=1'&password=1 就说我有sql语法错误,说明这题是要考虑sql注入的,然后然后用burpsuite检测许多sql相关的词,看哪些词被过滤了 bp爆破测试教程可以参考这一篇https://blog.csdn.net/weixin_38948797/artic

sql注入--双查询报错注入原理探索

目录 双查询报错注入原理探索 part 1 场景复现 part 2 形成原因 part 3 报错原理 part 4 探索小结 双查询报错注入原理探索 上一篇讲了双查询报错查询注入,后又参考了一些博客,今天来探究其原理 实际上该报错是由于rand(),count(),group by 三个语句联合使用造成的,缺一不可. 上一篇的地址:https://www.cnblogs.com/laoxiajiadeyun/p/10278512.html part 1 场景复现 首先我们新建一个数据库,并创建一

【菜鸟学注入】之MySQL报错注入详解

本文转自:http://bbs.blackbap.org/forum.php?mod=viewthread&tid=6483&highlight=mysql%2B报错注入 用SQL注入获取数据库数据,利用的方法可以大致分为联合查询.报错.布尔盲注以及延时注入,通常这些方法都是基于SELECT查询语句中的SQL注射 点来实现的.如果涉及非SELECT查询的注入,我们通常用到的就是mysql注入查询 创建一个test表 USE test; CREATE TABLE test(num int(5

又一种Mysql报错注入

from:https://rdot.org/forum/showthread.php?t=3167 原文是俄文,所以只能大概的翻译一下 这个报错注入主要基于Mysql的数据类型溢出(不适用于老版本的Mysql) mysql> SELECT 18446744073709551610 * 2; ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(18446744073709551610 * 2)' mysql> SELECT

Mysql报错注入原理分析(count()、rand()、group by)

0x00 疑问 一直在用mysql数据库报错注入方法,但为何会报错? 百度谷歌知乎了一番,发现大家都是把官网的结论发一下截图,然后执行sql语句证明一下结论,但是没有人去深入研究为什么rand不能和order by一起使用,也没彻底说明三者同时使用报错的原理. 0x01 位置问题? select count(*),(floor(rand(0)*2))x from information_schema.tables group by x; 这是网上最常见的语句,目前位置看到的网上sql注入教程,f

sql盲注之报错注入(附自动化脚本)

作者:__LSA__ 0x00 概述 渗透的时候总会首先测试注入,sql注入可以说是web漏洞界的Boss了,稳居owasp第一位,普通的直接回显数据的注入现在几乎绝迹了,绝大多数都是盲注了,此文是盲注系列的第一篇,介绍盲注中的报错注入. 0×01 报错注入原理 其实报错注入有很多种,本文主要介绍几种常见的报错方法,有新姿势后续再更新. 1. Duplicate entry报错: 一句话概括就是多次查询插入重复键值导致count报错从而在报错信息中带入了敏感信息. 关键是查询时会建立临时表存储数

SQL报错注入结合sqli lab和百度杯CTF VId

0x00 背景 学习记录一下报错型的注入,经各方整理和自己总结形成. 所有的注入原理都是一样,即用户输入被拼接执行.但后台数据库执行语句产生错误并回显到页面时即可能存在报错注入. 0x01概念 报错型注入的利用大概有以下3种方式: 1:?id=2' and (select 1 from (select count(*),concat( floor(rand(0)*2),(select (select (查询语句)) from information_schema.tables limit 0,1

i春秋——“百度杯”CTF比赛 十月场——Vld(Vulcan Logic Dumper 、php opcode、sql 报错注入)

打开题目看到提示 "do you know Vulcan Logic Dumper?" ,再查看源码看到"<!-- index.php.txt ?>",访问后发现一堆看不懂的东西 这肯定就是所谓的Vulcan Logic Dumper了,先了解下相关概念 PHP内核-Zend引擎:http://www.php.cn/php-weizijiaocheng-355597.html PHP中的opcode:https://blog.csdn.net/weiyu

bypass 之报错注入

0x00 前言 前面讲到了bypass 联合查询和盲注,那么这章节就来个报错注入. 0x01 报错注入与函数 此方法是在页面没有显示位,但是echo mysql_error();函数输出了错误信息的时候方能使用.优点是注入速度快,缺点是语句较为复杂,而且只能用limit依次进行猜解.总体来说,报错注入其实是一种公式化的注入方法,主要用于在页面中没有显示位,但是用echo mysql_error();输出了错误信息时使用. 在联合查询查询能爆出数据是因为在页面有显示位,而盲注只能靠页面返回正常或者