ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BUU-Web-[极客大挑战 2019]BuyFlag

2020-08-24 18:34:00  阅读:244  来源: 互联网

标签:Web 极客 数字 dump money BUU 123 字符串 password


拿到题目发现MENU有两个页面,一个是HOME,一个就是PAYFLAG,进入PAYFLAG上面显示必须是CUIT的学生

以为要xff伪造,用bp抓包看一下,发现有个cookie,内容是user=0,把0改成1send一下,发现回显身份正确了,惊喜!

这里又说要输入password

往下翻了翻发现源码

看了一下,需要以POST方式传递password和money两个参数,password是一个弱类型比较,绕过方式有很多比如404a,404%00,404%20,404 ,404tab都可以

弱等于:
==:先将字符串类型转化成相同,再比较
字符串和数字比较使用==时,字符串会先转换为数字类型再比较
var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0
var_dump('123a' == 123);//true,这里'123a'会被转换为123
var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。
举例:
var_dump('123a1' == 123);//true
var_dump('1233a' == 123);//false

money在页面回显中看到需要100000000(9个0),于是构造password=404a&money=1000000000,send一下,发现回显password没有输入,???what

后来看了wp才发现POST传递的参数要放在包的内容里,深感学的太少

再send一下,又说太长了,用科学计数法试一下moeny=1e9,得到flag

这里再记一下另一种解法,即money[]=1000000000, 利用的是strcmp的函数特性:当strcmp比较出错的时候就会为null,null即为0故输出flag。

 

标签:Web,极客,数字,dump,money,BUU,123,字符串,password
来源: https://www.cnblogs.com/Web-Fresher/p/13555463.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有