2020.3.22 bugku(16-20)

16.
在这里插入图片描述在这里插入图片描述这是一个典型的文件包含漏洞,(file关键字是提示,其实也是CTF的套路)。

利用:
http://120.24.86.145:8005/post/index.php****?file=php://filter/read=convert.base64-encode/resource=index.php

在这里插入图片描述这个很明显是base64编码的。
然后将得到的字符串base64解码得到index的源码:
在这里插入图片描述现在具体说说file=php://filter/read=convert.base64-encode/resource=index.php的含义

首先这是一个file关键字的get参数传递,php://是一种协议名称,php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。

通过传递这个参数可以得到index.php的源码,下面说说为什么,看到源码中的include函数,这个表示从外部引入php文件并执行,如果执行不成功,就返回文件的源码。

而include的内容是由用户控制的,所以通过我们传递的file参数,是include()函数引入了index.php的base64编码格式,因为是base64编码格式,所以执行不成功,返回源码,所以我们得到了源码的base64格式,解码即可。

如果不进行base64编码传入,就会直接执行,而flag的信息在注释中,是得不到的。

17.
在这里插入图片描述在这里插入图片描述我们这里用bp进行暴力破解
在这里插入图片描述之后发送给 intruder
在这里插入图片描述选择数字型的
在这里插入图片描述五位数 那就从 10000~99999
一步一步来
之后
在这里插入图片描述在这里插入图片描述18.
在这里插入图片描述按照题目 备份是个好习惯,是让我们寻找 .bak文件的,也就是说存在某个文件的.bak文件可以访问。
这里想推荐一航大佬的一款源码泄露工具,可以自动访问常见的CTF线索文件,如果返回正常说明文件存在。

下载地址
用命令:python SourceLeakHackerForWindows.py http://123.206.87.240:8002/web16/
在这里插入图片描述
在这里插入图片描述把index.php.bak文件下载下来。
在这里插入图片描述分析一波,11行strstr获得URI从’?‘往后(包括’?’)的字符串,12行去掉’?’,13行把字符串中的’key’替换为空,可以使用类似这样的语句:kkeyey 处理,14行parse_str把字符串解析到变量中,函数具体用法自行百度。最后需要得到key1,key2不相等而二者md5相等
我们这里具体看看parse_str函数的作用:在这里插入图片描述
有两种方法绕过:

1,md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。
在这里插入图片描述2,利用==比较漏洞

如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。
下列的字符串的MD5值都是0e开头的:
QNKCDZO
240610708
s878926199a
s155964671a
s214587387a

在这里插入图片描述19.
在这里插入图片描述查询东西,让我们联想到了sql注入。发现有POST表单和变量名,就想到了Sqlmap的POST登陆框注入
输入框内填写1,Burp Suite抓包
在这里插入图片描述在这里插入图片描述-r表示加载一个文件,-p指定参数,这里参数是i在这里插入图片描述-r表示加载一个文件,-p指定参数,这里参数是“id”
爆库
在这里插入图片描述
爆表
在这里插入图片描述爆列
在这里插入图片描述读取内容
在这里插入图片描述在这里插入图片描述以上我盗的别人的图,在我自己做的时候。我是直接将抓包后的内容放在sqlmap的文件夹里的,所以路径就少了很多。post 的参数的双引号可有可无。
20.
还不会,下次补

发布了48 篇原创文章 · 获赞 3 · 访问量 3369

猜你喜欢

转载自blog.csdn.net/DSR446/article/details/105018508