http://127.0.0.1/mutillidae/index.php?page=register.php 1.注册一个用户试一试,发现页面只提示用户注册成功信息,并五其它可回显信息,果断尝试盲注和报错 尝试布尔型盲注,并没有效果,,,试试时间型盲注,username处输入1'='1' and if(mid(version(),1,1)='5',sleep(5),1) and '1'='1 页面响应延迟,证明存在时间型盲注,,不想用ascii码二分法去猜解啦,直接用sqlmap跑就行啦, 2…
对于网站来说很多页面之间都有着大量的共享模块,如页头,页脚和用户栏等.很多时候为了方便.省事,我们在公共模块写函数,然后在别的页面里调用.但我们在引用公共的js函数时,有些可以引用,有些却报错:这是因为js加载的问题,即当前页面加载完,但有些公共页面却没有加载完就引用公共的js,就会报这个函数没有找到. 引用公共页头的js 结果如下: 引用公共页脚的js 结果如下: 从上面的两个例子,我们可以知道js加载顺序是从上往下的加的,页头先加载-——当前页面——页脚最后,所有当前页面引用了没有加载完成的…
insert注入的技巧在于如何在一个字段值内构造闭合. insert 报错注入 演示案例所用的表: MariaDB [mysql]> desc test; +--------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+----------+------+-----+---------+-------+ | id | int(10) | Y…
将ECSHOP会员注册页面的Email修改成非必填项 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2011-07-29   有人说,在后台的 “会员注册项设置 ”里面不是可以控制是否必填吗??我就碰到好几个人这么说过.其实是他看问题不认真,这里说的是“将会员注册页面的email修改成非必填项”,注意是 email , 那个"会员注册项设置"里是不包括EMAIL的 闲话少叙,下面就来说一下方法,注意此方法是在Ecshop2.7.2版上修改的,针对以前版本…
forms.py里注册页面的form组件 # Create your views here. class RegForm(forms.Form): username = forms.CharField( min_length=3, label="用户名", help_text='', error_messages={ "required": "不能为空", "invalid": "格式错误", "…
SpringBoot注册Windows服务和启动报错的原因 Windows系统启动Java程序会弹出黑窗口.黑窗口有几点不好.首先它不美观:其次容易误点导致程序关闭:但最让我匪夷所思的是:将鼠标光标选中黑窗口日志信息,程序竟然不会继续执行,日志也不会继续输出.从而导致页面一直处于请求状态.回车后程序才能正常执行.同时客户希望我们能部署在Windows系统上并且做到开机自动启动.针对以上需求将系统程序注册成Windows服务变得尤为重要. 针对于SpringBoot程序,目前主流的方法是采用win…
目录 双查询报错注入原理探索 part 1 场景复现 part 2 形成原因 part 3 报错原理 part 4 探索小结 双查询报错注入原理探索 上一篇讲了双查询报错查询注入,后又参考了一些博客,今天来探究其原理 实际上该报错是由于rand(),count(),group by 三个语句联合使用造成的,缺一不可. 上一篇的地址:https://www.cnblogs.com/laoxiajiadeyun/p/10278512.html part 1 场景复现 首先我们新建一个数据库,并创建一…
题目地址:http://ctf5.shiyanbar.com/web/baocuo/index.php 先查看页面源码得到提示知道了后台执行的sql语句,很常规的查询 测试了一个报错函数发现如下回显,可见屏蔽了报错信息,也有可能是监测到了updatexml这个报错函数,于是先用burp来fuzzing测试一波,看看哪些关键字 被屏蔽了 burp抓包并send to intruder 分别对username和password进行fuzzing测试,这里演示username的,设置完后点击start…
例子:www.kfgtfcj.gov.cn/lzygg/Zixun_show.aspx?id=1[1]首先爆版本:http://www.kfgtfcj.gov.cn/lzygg/Zixun_show.aspx?id=1 and @@version>0 原因:@@version是mssql 的全局变量,如果我们把它写成这样 and @@version>0 那个后面的mssql就会强行把@@version 强行转换成数字,但是失败,所以就会将数据库信息暴露出来同样:通过@@SERVERNAME:爆…
盲注查询 盲注其实就是没有回显,不能直观地得到结果来调整注入数据,只能通过其他方式来得到是否注入成功,主要是利用了一些数据库内置函数来达到的 布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根据你的注入信息返回Ture跟Fales 其实登录处的注入就是布尔型的,万能密码就是构造一个永真的查询,比如下面的 select user from test where passwd=‘{injuct}’: #构造永真,即令where的条件用于为真 select user from test whe…
SQL各种参数类型下的注入测试 数字型-sqlilabs less2 前面文章已演示过 字符型-sqlilabs less1 前面文章已演示过 搜索型-自写测试 如: www.test.com/index.php?id=1 www.test.com/index.php?id=abc (搜索型,一般产生在网站的搜索框)http://www.test.com/search.php?q=1 区分参数类型的原因: 当参数类型为数字时,sql语句拼接可以不用引号或其他符号进行概括,而参数类型为字符串时,s…
LESSON 5: 典型的布尔盲注. 盲注:sql注入过程中,sql语句的执行结果不回显到前端,这个时候就只能用一些别的方法进行判断或者尝试,这个判断或者尝试就叫做盲注.盲注又分为:1.基于布尔SQL盲注.2.基于时间的盲注.3.基于报错的盲注. 布尔盲注:一般适用于页面没有回显字段(不支持联合查询,即union select),且web页面返回True或者False,在lesson 5里就相当于回显 You are in ......(true)或者报错(false),利用枚举思想或者二分法来…
Mysql报错注入原理分析(count().rand().group by) 0x00 疑问 一直在用mysql数据库报错注入方法,但为何会报错? 百度谷歌知乎了一番,发现大家都是把官网的结论发一下截图,然后执行sql语句证明一下结论,但是没有人去深入研究为什么rand不能和order by一起使用,也没彻底说明三者同时使用报错的原理. 0x01 位置问题? select count(*),(floor(rand(0)*2))x from information_schema.tables gr…
来源:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0137013.html parse_str()引发的注入, //parse_str()的作用是解析字符串并且把字符串注册成变量,第二个参数$arr是一个数组,parse_str()之前会先urldecode,也就是会二次url解码,实现单引号逃逸. 漏洞距离现在好像有点年代久远,有个限制就是对于php的版本要小于5.4,因为5.4以后默认关闭gpc,如果关闭gpc就会调用addslashes…
报错注入:extractvalue.updatexml报错原理 MySQL 5.1.5版本中添加了对XML文档进行查询和修改的两个函数:extractvalue.updatexml 名称 描述 ExtractValue() 使用XPath表示法从XML字符串中提取值 UpdateXML() 返回替换的XML片段 通过这两个函数可以完成报错注入 一.extractvalue函数 ExtractValue(xml_frag, xpath_expr) ExtractValue()接受两个字符串参数,一…
目录 sqli-labs 5.6双查询报错注入通关 0x01 获取目标库名 0x02 获取库中表的数量 0x03 获取库中表名 0x04 获取目标表中的列数 0x05 获取目标表的列名 0x06 从列中获取用户名 0x07 获取对应的用户密码 0x08 过关小结 本文以sqli-labs第五第六关为例,详细原理见我上一篇文章 sqli-labs资源在这:https://github.com/Audi-1/sqli-labs --- sqli-labs 5.6双查询报错注入通关 这篇为了代码行语法…
sql注入--双查询报错注入 背景:在sqli-labs第五关时,即使sql语句构造成功页面也没有回显出我们需要的信息,看到了有使用双查询操作造成报错的方式获得数据库信息,于是研究了一下双查询的报错原理,总结了探索的过程,整理出此文希望可以帮到感兴趣的人. sqli-labs闯关游戏下载地址:https://github.com/Audi-1/sqli-labs 双查询报错注入 需用到四个函数和一个group by语句: group by ... --->分组语句 //将查询的结果分类汇总 ra…
以前觉得报错注入有那么一长串,还有各种concat(),rand()之类的函数,不方便记忆和使用,一直没怎么仔细的学习过.这次专门学习了一下,看了一些大牛的总结,得到一些经验,特此记录下来,以备后续巩固复习. 总体来说,报错注入其实是一种公式化的注入方法,主要用于在页面中没有显示位,但是用echo mysql_error();输出了错误信息时使用. 公式具体如下 ,),)))x from information_schema.tables group by x)a) 我们在这个语句中其实已经可以…
本文转自: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 )); I…
0x00 前言 在oracle注入时候出现了数据库报错信息,可以优先选择报错注入,使用报错的方式将查询数据的结果带出到错误页面中. 使用报错注入需要使用类似 1=[报错语句],1>[报错语句],使用比较运算符,这样的方式进行报错注入(MYSQL仅使用函数报错即可),类似mssql报错注入的方式. 判断注入 http://www.jsporcle.com/news.jsp?id=1 and (select count (*) from user_tables)>0 -- http://www.j…
5/30 报错注入 0x01 准备阶段 1. 基础知识今天了解了,但是,只能看懂和最基本的理解,不能自己上路.所以,还是要不停学习基础.并且及时总结.这有一篇很详细的文章:https://www.cnblogs.com/pshell/articles/7473713.html 2.现在有基本思路了.先找注入点,然后再确定有几个字段,再确定字段的位置.通过字段位置,查数据库名.表名.列名. 3.找注入点.确定字段数.判断回显位置. 然后发现有三个null,接下来,我们寻找三个null中,哪些才是真…
在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于报错注入是在玩网络攻防平台第几关来着得,那个关卡时基于报错注入的,我当时还特地查了好多资料,学习了学习报错注入,当然在那段时间时,我看到我一个认为不错的团队开始收核心成员了,我就发了一份申请,果不其然,我被刷下来了,,,毕竟我还是菜么..... 当时申请的时候,我就想过,团队不养闲人,毕竟菜,所以菜…
// take the variables//接受变量 // //也就是插入post提交的uname和passwd,参见:https://www.w3school.com.cn/sql/sql_insert.asp if(isset($_POST['uname']) && isset($_POST['passwd'])) { //making sure uname is not injectable//使用了check_input函数,确保了uname不可注入 $uname=check_i…
0x00 背景 SQL注入长期位于OWASP TOP10 榜首,对Web 安全有着很大的影响,黑客们往往在注入过程中根据错误回显进行判断,但是现在非常多的Web程序没有正常的错误回显,这样就需要我们利用报错注入的方式来进行SQL注入了.这篇文章会讲解一下报错注入的产生原理和利用案例. 0x01 十种报错注入 这十种方式在这里不多讲了,详情移步https://www.cnblogs.com/wocalieshenmegui/p/5917967.html.平时我们最常用到的三种报错注入方式分别是:f…
payload   1 Union select count(*),concat((查询语句),0x26,floor(rand(0)*2))x from information_schema.columns group by x; payload拆分讲解  1 count():count()函数返回匹配指定条件的行数.count(*)函数返回表中的记录数 2 floor():floor:函数是用来向下取整呢个的,相当于去掉小数部分 3 rand():rand()是随机取(0,1)中的一个数,但是…
--志向和热爱是伟大行为的双翼. 昨天偷懒了没学什么东西,先自我反省一下 - -. 今天认真的学习了一下Mysql报错注入利用方法及原理,好久之前就像认真的学一下这个了,是在上海市大学生网络安全大赛中遇到的web100.当时懵逼状态,被学长提醒了一下才知道是Mysql报错注入,因为之前一直都没接触过,所以当时只是知道怎么用然后拿了flag.其实根本不知道什么原理怎么回事,直到今天才把一些常见的报错注入方法原理搞懂,所以写篇博客来加深记忆以便后期会议. 首先,SQL有一下几种: 1.UNION q…
打开靶机 payload 1 Union select count(*),concat((查询语句),0x26,floor(rand(0)*2))x from information_schema.columns group by x; payload拆分讲解 1 count():count()函数返回匹配指定条件的行数.count(*)函数返回表中的记录数 2 floor():floor:函数是用来向下取整呢个的,相当于去掉小数部分 3 rand():rand()是随机取(0,1)中的一个数,…
updatexml()函数报错注入 updatexml (XML_document, XPath_string, new_value); 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc 第二个参数:XPath_string (Xpath格式的字符串) ,了解Xpath语法. 第三个参数:new_value,String格式,替换查找到的符合条件的数据 理解就是updatexml函数有查询功能 并且会再xpath处查询.使用语法构造错误 查询的结果已报…
本文章主要涉及group by报错注入的原理讲解,如有错误,望指出.(附有目录,如需查看请点右下角) 一.下图为本次文章所使用到 user表,该表所在的数据库为 test 二.首先介绍一下本文章所使用的到的语法:(第5.6条必须看,这涉及到之后的原理讲解) 1.group by语句:用于结合合计函数,根据一个或多个列对结果集进行分组. 如下图: 2.rand()函数:用于产生一个0-1之间的随机数: 如下图: 注意: 当以某个整数值作为参数来调用的时候,rand() 会将该值作为随机数发生器的种…
1.sql注入之报错注入 正常传参,返回页面正常: 加入'  返回页面报错,出现"zhangsan"' 报错注入使用的函数 在这里我们使用 select updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='test' limit 0,1)),0); 直接爆出person表 在浏览器中使用:http://127.0.0.1/disizhang/4.1.8…