危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2307 浏览21468191

工具限制算什么?照样注入!

还记得以前读书的时候,那时候喜欢黑客技术,于是便进了我学校网站的后台,拿了webshell,后来因为要准备期中考试,就没继续深入了,然后突然想起来去看了下,没想到我的ASP大马被换成了个警告页面,学校网站也全面更新,换了另一套整站系统,原来的漏洞全没了,刚好让咱继续练练手。

一、手工注入的起因

大概看了下新的站点,新版TotCms,谷歌一下,漏洞是有,但是新版都不能用了,于是试了下默认的管理员账号和密码,不知道为什么点登陆以后出现了错误。

“Site:xxx inurl:xxx=”丢到啊D里扫一下,竟然显示发现了注入漏洞。但是猜长度的时候啊D提示出错了,换成明小子检测的时候提示“列名长度大于50”。怎么办呢?看来肯定是存在注入漏洞的,只是工具有局限性罢了,于是准备手工注入。

二、猜测长度与具体值

之前啊D和明小子猜出了两个表段分别是admin和news,admin下有三个字段:admin、password、adminid。数据库是Access的。工具已经猜出这么多了,我们剩下要做的就是猜出admin和password的长度,再猜出他们各位的值就行了。

猜列名长度是这样的:xxx id=248 and exists(select[列名]from[表名]where len([列名])=[你猜的长度])。这句首先是用了个逻辑运算符and,表示查询满足and前后两个条件的数据。and后面的exists(select[列名l from[表名]where len([列名]).[你猾的长度]),的意思是如果你所查的列的长度和你所猜的一样的话,就返回真。因为id=248这个数据本身就是存在的,所以只要你列长猜对了,就会成功的显示出id-248这个页面。

当然如果你一个数一个数猜的话,会很累的,所以一般先用xxx id=248 and exists(select[列名]from[表名]wherelen([列名])>[你猜的长度])或者xxx id=248 and exists( select[列名]from[表名]where len([列名])<[你猜的长度])这样来缩小范围最终确定一个值,就像玩猜数字游戏一样。我猜出的结果是admin的长度为6位,password的长度为16位(猜密码长度的时候一般先猜16或者32,因为现在密码基本都是标准MD5加密过的)。

猜完长度后接着来猜admin和password的具体值。基本原理和上面的一样,http:/xxx.ed u.cn/new,asp?id=248 and exists( select admin fromadmin where asc(mid(admin,1,1))>50)这里用到asc()和mid()这两个函数,mid(X,Y,Z)的意思是在列名为X的列从第Y位起(包括第Y位)取Z个数,asc0是把数值转成ascii码。asc(mid(admin,1,1))>50就是猜admin的第一位值的ascu码是不是大于50。我猜出的结果是admin为100,117,104,101,110,103,password为99;99,5 1,100,5 0,102,99,97,102,97,48,98,101,57,100,55,查一下asc11表就可以知道admin为dubeng,password为cc3d2fcafaobe9d7,在xmd5.com上查了下是551032.在用啊D的管理入口检测功能成功找到登陆页面并且成功登陆。

三、拿webshell

后台有个添加新闻的地方有个编辑器可以上传图片,但是有格式限制,找了下还有个数据库备份功能,嘿嘿,看来只要利用这两处就很轻松可以拿到webshell了,直接找了个ASP大马改成JPG格式上传,上传的时候用WPE抓包找到传好的地址。抓到的地址为/admin/editubb/UploadFile/20101124175644839.jpg,接着数据库备份,很顺利成功了。

进去之后本想清理下痕迹的,利用ASP木马的本文来自危险漫步博客查找木马功能搜了下,竟然发现了其他类似木马的东西,点进去一看才知道我学校的管理员原来藏了个ASP木马用来管理网站,估计他也是用里面的查找木马的功能来清理木马吧,不过这可方便我了,利用木马的编辑功能成功拿到那个“合法木马”的登陆密码,以后再进来就方便多了!

四、提权拿服务器

剩下的就是提权拿服务器了,佣木马查看服务器组件信息。可知可以执行cmd、可以上传,扫了下有开放3389,测试远程桌面可以连上。再看看哪个目录可以读可以写。

我选了c:\recycler这个目录,我们把cmd传上去,这里要注意,系统自带的cmd因为太大了有可能传不上去,所以我传了个处理过的cmd只有80k。传上去后用执行cmd命令运行下,成功回显,接下来我在recycler又传了个提权大杀器——pr.exe。Pr是基于ms09-012的利用程序,它可以以system权限执行任意命令,于是我们在cmd那里写上c:\recycler\pr.exe “net user kenzo 123 /add”,执行成功后再执行c:\recycler\pr.exe “net localgroup administrators kezo /add”这样就加了一个用户名为kenzo密码为123的用户,并且题身为管理员。用远程桌面连接一下对方并登陆成功。

至此,整个服务器已被拿下,纵观整个过程,关键是坚持,工具放弃了,你也不能放弃!(为什么啊D还有明小子会报长度大于50的错误呢?他们应该也是用哪个方法测长度的才对,还请高手指点。)