当前位置: 首页 > wzjs >正文

网站建设如何获取客户php租车网站源码

网站建设如何获取客户,php租车网站源码,html生成网站,关键词优化怎么做知识点 科学计数法的妙用 9e9 指定结尾MD5值的爆破array_search() 函数用于在数组中搜索某个值,并返回对应的键名。如果找不到该值,则返回 false 默认值匹配:可以利用整数绕过字符串匹配机制stricttrue时,数据类型和值都需要匹配…

知识点

  • 科学计数法的妙用
    • 9e9
  • 指定结尾MD5值的爆破
  • array_search() 函数用于在数组中搜索某个值,并返回对应的键名。如果找不到该值,则返回 false
    • 默认值匹配:可以利用整数绕过字符串匹配机制
    • strict=true时,数据类型和值都需要匹配,这时就不能绕过了
  • json格式:{"key":"value"}

解题思路

题目地址:http://223.112.5.141:62116

访问地址发现是一个代码审计;内容已加注解

 <?php
highlight_file(__FILE__);
$key1 = 0;
$key2 = 0;//通过GET方法获取输入的a、b的值
$a = $_GET['a'];
$b = $_GET['b'];//关于变量a的判断:a变量有值+转为整数后的值>6000000+字符串长度<3
if(isset($a) && intval($a) > 6000000 && strlen($a) <= 3){//关于b变量的判断:b变量存在+MD5编码后的后六位为8b184bif(isset($b) && '8b184b' === substr(md5($b),-6,6)){$key1 = 1;}else{die("Emmm...再想想");}}else{die("Emmm...");
}//将json格式的变量C转为数组
$c=(array)json_decode(@$_GET['c']);
//关于变量c的判断:c是数组+c['m']非整数+c['m']>2022+c['n']是数组且有两个元素+c['n'][0]也是数组+c['n']元素中有和"DGGJ"字符串值一样但是数据类型不一样的元素if(is_array($c) && !is_numeric(@$c["m"]) && $c["m"] > 2022){if(is_array(@$c["n"]) && count($c["n"]) == 2 && is_array($c["n"][0])){$d = array_search("DGGJ", $c["n"]);$d === false?die("no..."):NULL;foreach($c["n"] as $key=>$val){$val==="DGGJ"?die("no......"):NULL;}$key2 = 1;}else{die("no hack");}
}else{die("no");
}//两个key值均为1的时候输出flag信息
//即需要a、b、c三个变量都满足对应条件
if($key1 && $key2){include "Hgfks.php";echo "You're right"."\n";echo $flag;
}?> 
通过代码审计得到了a、b、c三个变量需要满足的条件
关于变量a的判断:a变量有值转为整数后的值>6000000字符串长度<3
乍看一下感觉很矛盾,但是这里容易忽略科学计数法
a=9e9 刚好能够满足需求
关于b变量的判断:b变量存在MD5编码后的后六位为8b184b
这里需要进行md5随机数爆破了,这里需要写一个爆破的脚本(放在下面了)
通过爆破得到了一个值:
549696021039
md5(549696021039)=836dba5c7b23351df27a754d778b184b这里的值不唯一,如果不限制爆破成功结束的话应该有很多
b=549696021039
#随机数md5爆破配对固定后六位脚本
import hashlib
import randomtarget = "8b184b"while True:#随机产生12位数字并转为字符串    number = str(random.randint(10**11, 10**12 - 1))#将字符串编码为字节串:输入格式需要;创建md5对象并转为16进制形式输出md5_hash = hashlib.md5(number.encode()).hexdigest()if md5_hash[-6:] == target:print(f"找到匹配的数字: {number}")print(f"对应的 MD5 哈希值: {md5_hash}")break

关于变量c的判断:json格式:键值对样式;如{"key":"value"}c转换完后是数组c['m']非整数c['m']>2022c['n']是数组且有两个元素c['n'][0]也是数组   c['n']元素中有和"DGGJ"字符串值一样但是数据类型不一样的元素array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false
默认值匹配; strict=true时必须数据类型和值完全匹配
array_search函数默认情况下是值匹配的:即字符串和整数比较时都转为整数进行比较
那么"DGGJ"和0是相等的综上所述
尝试构造c变量:{"m":"2023a","n":[[1],0]}
有了上面的分析,尝试构造payload:
http://223.112.5.141:62116/?a=9e9&b=549696021039&c={"m":"2023a","n":[[1],0]}

访问后成功得到了flag: cyberpeace{cf294792e8e191e4e4899d6f0c34c3fd}

tips:复制flag的时候千万别多复制结尾空格,要不然答案是不对的

10

http://www.dtcms.com/wzjs/595245.html

相关文章:

  • 西安市做网站公司phpcms v9网站模板
  • 网站建设怎么做更好用html做网站搜索框
  • 网站开发公司+重庆网站建设和优化需要几个人
  • 网站建设维护成本手表官方网
  • 怎么自己做模板网站网站开发商业秘密保密协议
  • 宁波网站推广网站优化本地搭建网站网站后台
  • 免费网站设计软件重庆十大房地产公司
  • 北京建设工程监督网站网站怎么样被百度收录
  • 网站建设公司哪些主要哪些怎么在国税网站上做实名认证吗
  • 网站开发策划案无锡有哪些互联网公司
  • 网站开发软件开发怎么样陕西新闻最新消息
  • 吉林省住房建设安厅网站安全管理办法网络设备维护是做什么的
  • 电影网站推荐哪个网站好it培训学校it培训机构
  • 全功能电子商务网站建设网站做优化需要哪些后台信息
  • 网站获取访客动漫网站建站
  • 网站 自建空间为什么做网站结构优化
  • wordpress 手机 自建站可不可以用帝国cms做企业网站
  • wordpress更改人员优化方案怎么写
  • 青岛即墨网站建设设计网站开发的课程设置
  • 佛山个性化网站搭建ui高级培训机构
  • 如何做镜框 网站定制网站制作系统
  • 比较不同类型网站栏目设置区别软件开发工程师证书图片
  • 濮阳免费网站建设wordpress怎么和手机连接
  • 做网站保存什么格式最好网站头部seo范例
  • 网站建设收费分几次如何做二级域名网站
  • iis网站怎么做域名绑定上海软件开发工程师工资一般多少
  • 襄阳网站制作网站制作哪家便宜
  • 字形分析网站优化seo搜索
  • 做律师咨询网站网站的程序和数据库怎么做的
  • 西安直播网站开发益阳市赫山区建设局网站