点击一百万次
问题描述:
提示是js
查看源码:
使用burpsuite抓包,之后改变请求方法:
之后改参数clicks是1000000以上,go一下,得到flag:
备份是个好习惯
点击后出现类似md5的密文:
查询之后显示空密码(NULL的md5值):
不相关(一个端口下的后台):
后台扫描:
有个phpmyadmin,进去后是:
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。
提示cookie,用burpsuite抓包,有cookie和session:
想到有个phpmyadmin有个配置文件:libraries目录下的 config.default.php 文件,但是访问不到,到此思路就断了。。
再看看大佬的题解:
备份是指的一个习惯,会在防止误删等情况下对文件的备份,常用操作就是文件名末尾加.bak
可以找到一个文件服务端php备份代码文件(源码泄露):
解决方法:
1 md5()函数有漏洞:无法处理数组,会返回NULL ,在这个题就是加密后相等都为NULL,加密前不等(自己构造)
构造一下变量名,直接绕过检测:
http://123.206.87.240:8002/web16/?kekeyy1[]=aaa&kekeyy2[]=bbb
得到flag:
2 PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0(被认为是科学计数法,且表示的是0*10的xxxx次方),所以如果两个不同的密码经过哈希以后,其哈希值都是以“0E”开头的,那么PHP将会认为他们相同,都是0。
这几个串开头的经过md5加密会以“0E”开头:
- QNKCDZO
- 240610708
- s878926199a
- s155964671a
- s214587387a
- s214587387a
所以自己构造:
http://123.206.87.240:8002/web16/?kekeyy1=240610708&kekeyy2=s214587387a
也能得到flag
大佬写的脚本,源码泄露工具(这题.bak文件就可以扫出来):
https://coding.net/u/yihangwang/p/SourceLeakHacker/git?public=true#user-content-usage-
使用:
Usage :
python SourceLeakHackerForLinux.py [URL]
Example :
python SourceLeakHackerForLinux.py http://www.baidu.com/
Tips :
Your URL should must starts with "http://" or "https://"
If you have any questions, please contact [ wangyihanger@gmail.com ]
还会“哔”的一声提示,人性化啊
php函数:
1 $_SERVER['REQUEST_URI']
取得当前URL的路径地址比如: http://12.cn/question/469321857.html?push=core&group=1,它获得的是路径 question/469321857.html?push=core&group=1
2 str_replace(find,replace,string,count)
参数 | 描述 |
---|---|
find | 必需。规定要查找的值。 |
replace | 必需。规定替换 find 中的值的值。 |
string | 必需。规定被搜索的字符串。 |
count | 可选。对替换数进行计数的变量。 |
3 substr(string,start,length)
返回从start开始的长度为length的字符串,默认直到末尾
4 parse_str() 函数把查询字符串解析到变量中
注释:如果未设置 array 参数,由该函数设置的变量将覆盖已存在的同名变量。
注释:php.ini 文件中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。
parse_str(string,array)
参数 | 描述 |
---|---|
string | 必需。规定要解析的字符串。 |
array | 可选。规定存储变量的数组名称。该参数指示变量存储到数组中。 |
例子:
<a href="http://localhost/parse_str.php?id=1&category=php&title=php-install">Click Here</a>
$query_str = $_SERVER['QUERY_STRING'];
parse_str($query_str); /* 这种方式可以直接使用变量$id, $category, $title */
parse_str($query_str, $query_arr); //赋值给$query_arr