bug
知识点
apache文件解析漏洞
多后缀名
php支持多种后缀名,如test.html.achc,由于不认识achc后缀,继续往前读,读到html,才知道这是html文件
罕见后缀
原来不仅php,就连phtml、pht、php3、php4和php5都是Apache和php认可的php程序的文件后缀
.htaccess
在.htaccess文件中写入
AddType application/x-httpd-php xxx
就成功地使该.htaccess文件所在目录及其子目录中的后缀为.xxx的文件被Apache当做php文件
在.htaccess文件中写入
<FilesMatch "shell.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
该语句会让Apache把shell.jpg文件解析为php文件。
做题
进去网站,先将所有的界面功能流程走一遍,知道具体的运行机制,然后对每个有表单的地方用sqlmap扫一下,发现没有sql注入漏洞。在manage界面提示不是admin,不能进去,看来是要我们成为admin,怎么成为admin呢,sql注入漏洞又没有,做到这就不会了
思路一
在findwp界面,我们可以通过bp发现分为两步
第一步是先对输入的信息进行验证,验证信息的方式是username和birthday和address在数据库中存在,然后才会进入第二步
第二步,显然username是要改密码的账户,newpwd是新密码,我们可以通过抓包,改包,将username改成admin,然后新密码我们又知道就可以登录admin用户了
思路二
我们在登录成功之后,服务器给我们返回了一个cookie,之后我们带着cookie去访问页面,服务器就能识别我们的身份了
我们尝试对cookie进行解密,这是个md5加密,解密后是5:123456
这不就是返回给我们的Uid加上用户名嘛,我们直接进行cookie伪造,1:admin,再md5加密,为什么是1(猜的),当然也可以用bp暴力破解,在payload proccess区域添加md5加密就行。
改cookie时也要把uid改成1,回显
然后我们再去改密码。登陆admin
登陆进去之后,manage页面,根据提示ip,加个x-forwarded-for,来绕过,然后再根据提示<!-- index.php?module=filemanage&do=???-->
,访问。看来是要我们猜了,filemanage文件管理有什么内容呢,猜测upload,download,write,read等,在upload时猜对了,然后就是文件上传
管他三七二十一,直接把能改的全改掉,然后还是没有成功,就改后缀,改到php4和php5回显flag
总结
拿admin权限,又多了两种方法,除了爆数据库,还有cookie伪造,以及修改密码那里看有没有分两步进行,然后利用该漏洞
参考博客!https://blog.csdn.net/qq_32434307/article/details/79480316