ctfshow web入门文件上传 |
您所在的位置:网站首页 › 图片webshell › ctfshow web入门文件上传 |
web151
上传一个png的一句话木马,并用bp抓包 找到木马路径upload/shell.php 关闭bp,观察文件是否上传成功,上传成功后会返回上传路径 文件上传成功后,直接访问upload/shell.php shell=system('tac ../f*');与上一题做法一样 web153先看一下源码,php文件上传不了,可以传png文件 php.ini是php的一个全局配置文件,对整个web服务起作用;而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,我们可以利用这个文件来构造后门和隐藏后门。 但是这种方式其实是有个前提的,因为.user.ini只对他同一目录下的文件起作用,也就是说,只有他同目录下有php文件才可以。配置文件内容: auto_prepend_file=filename //包含在文件头 auto_append_file=filename //包含在文件尾 //filename是你自己的文件名 为了利用auto_append_file,我们首先上传.user.ini内容为 auto_append_file=“xxx” xxx为我们上传的文件名,接着上传一个带木马的图片 因为upload有index.php,所以这个php就会添加一个include(“shell.png”),就会包含到木马,这样就在每个php文件上包含了我们的木马文件。文件内容: .user.ini.png 内容: auto_prepend_file="shell.png" shell.png开始做题 先上传.user.ini.png文件,并抓包,修改名称:.user.ini 放包 再上传图片马 放包 成功上传 访问/upload/ post传入参数shell=system('tac ../flag.php'); 找到flag web154与web153一样再来一遍,发现.user.ini文件能上传,但是上传图片马上传不成功 应该是过滤了php 可以试试短标签 可用使用进行绕过, 等价于 //无限制 图片内容为同154 web156这次估计是过滤了[] 可以把[]换为{},同154 上传成功 继续同154 web157.158在前面的基础上过滤了;在短标签里可以不要; 直接怼 直接访问/upload/ web159这里是将()给ban了,我们采用反引号来执行命令,即 或 web160这题在之前的基础上过滤了空格 先说第一种做法 Nginx日志的默认路径: /var/log/nginx/先正常上传.user.ini文件(注意里面不要有空格),然后上传图片,图片内容为 (log被过滤) 然后讲一句话写进user-agent里,再蚁剑连接,获取flag然后连接蚁剑 url+upload/index.php或者将UA改为 然后直接访问/upload/ 第二种 还是先上传.user.ini,再上传图片,图片内容为 然后直接访问/upload/,进行base64解码就行 web161 getimagesize(): 会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求这道题对图片的文件头进行了检测! 所以在上题的基础上都加个 GIF89a 图片头就可以了 .user.ini也得加,图片也得加,上题的两种方法都可以 GIF89a这题把flag和.给ban了,使用seesion文件包含 先上传.user.ini,内容为: GIF89A auto_append_file=/tmp/sess_hacker还是先构造一个上传seeeion文件的包 改Cookie:PHPSESSID=hacker 在123那里写入内容 访问upload/目录,目录下有index.php文件,即相当于在index.php文件中执行include /tmp/sess_hacker 对两个包进行有效载荷的设置 线程搞到25 开始竞争,先爆post包,再爆get的包 成功竞争后得到flag web164考点是png图片二次渲染 二次渲染 将一个正常显示的图片,上传到服务器。寻找图片被渲染后与原始图片部分对比仍然相同的数据块部分,将Webshell代码插在该部分,然后上传。具体实现需要自己编写Python程序,人工尝试基本是不可能构造出能绕过渲染函数的图片webshell的。 大佬链接:https://www.fujieace.com/penetration-test/upload-labs-pass-16.html首先只能上传png文件 上传图片马,发现没有办法执行 在bp上发现图片中php代码没有了,猜测是进行了二次渲染 绕过二次渲染的png脚本: */ //imagepng($img,'1.png'); 要修改的图片的路径,1.png是使用的文件,可以不存在 //会在目录下自动创建一个1.png图片 //图片脚本内容:$_GET[0]($_POST[1]); //使用方法:例子:查看图片,get传入0=system;post传入tac flag.php ?> ------------------------------------ 创建1.png图片成功! ------------------------------------脚本保存为 png二次渲染.php ,进入脚本所在目录,执行命令 php png二次渲染.php c.png //c.png可以换成任何名字创建成功后,生成一个图片文件1.png 上传该图片 查看图片并传入命令: &0=system 1=tac f*使用ctrl+s将图片下载下来,记事本打开即可 这题改成了:jpg二次渲染 绕过二次渲染的jpg脚本: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |