BBSXP漏洞再探究

注:本文已发表在《黑客X档案》2005年6期,版权归其所有,转载请保持文章完整性并注明版权

最近BBSXP论坛可以说是一点都不平静。漏洞一个接一个暴出来。上次对showforum.asp这个文件的漏洞分析过后,没多久,又暴出blog.asp存在漏洞。于是俺这个菜鸟的心再不能平静了,不要每次都等着人家给我们找漏洞,咱自己也来分析一把看看。

首先,我们回顾一下showforum.asp中的漏洞,还记得order变量,是经过了HTMLncode过滤了以后才放到SQL语句中去执行的。再来看看blog.asp中出漏洞的地方:

id=HTMLEncode(Request("id"))

if id<>"" then

sql="select * from [calendar] where id="&id&" order by id Desc"

id变量同样是经过了HTMLEncode过滤了以后,就放到了SQL语句中去了。利用的方法是构造一个特殊的id变量,使用UNION查询将密码暴出来。

小知识:UNION查询的基本介绍

使用UNION可以将多个查询结果合并起来时,系统会自动去掉重复的记录。参加UNION操作的各结果表的列数必须相同;对应项的数据类型也必须相同;

select top 1 username,userpass from [user] union select ’test’,’12345’ from [clubconfig]

——这里加上了单引号是表示里面的数据为字符型,为了和前面的username和userpass的类型对(在ACCESS中则没有这么严格的要求,数据类型不一致的话,不会导致SQL语句出错)上。在海洋2006的数据库操作里执行的结果如下(图1):

screen.width-461) window.open(’/Article/UploadFiles/200507/20050722220746428.jpg’);" src="/college/UploadPic/2006/8/27/2006827232628179.jpg" width=564 onload="if(this.width>screen.width-460)this.width=screen.width-460" border=0>

原理学习与分析

了解了union查询,我们就可以构造这个id了。如:id=-1 union select 1,2,3,4,5,6,7 from [user] where membercode=5

还原完整的SQL语句是这样的:

select * from [calendar] where id=-1 union select 1,2,3,4,5,6,7 from [user] where membercode=5 order by id Desc

此SQL前半部分会因为id=-1而什么也查不出来,然后,1~7这7个数字是因为calendar这个表中有7个字段。那么大家可以看到如图的结果。(图2)

screen.width-461) window.open(’/Article/UploadFiles/200507/20050722220807132.jpg’);" src="/college/UploadPic/2006/8/27/2006827232628948.jpg" width=564 onload="if(this.width>screen.width-460)this.width=screen.width-460" border=0>

其中能显示出来的数字(比如3和4),可以改为字段名username和userpass。因为有membercode=5做条件,所以可以将级别为社区区长的用户名和密码查出来。(图3)当然,如果想查特定用户的密码也是很容易的,把username作为限制条件就可以了。不过要注意的是,HTMLEncode函数过滤了单引号,所以要用十六进制转换一下。把语句改为:

id=-1 union select 1,2,userpass,4,5,6,7 from [user] where username=0xD3C3BBA7

其中0xD3C3BBA7是“用户”的十六进制写法。如果是数字和英文的话,记得每一个字符需要用四个字节来表示,比如“1”要写成0x3100。这和上次的一样。有一个不一样的地方是,上次我们用了DECLARE @cmd sysname,并且将空格转换为了“+”号,后来实践后发现是没有必要的。所以特别提出一下。

(0)

相关推荐

  • BBSXP漏洞再探究

    注:本文已发表在<黑客X档案>2005年6期,版权归其所有,转载请保持文章完整性并注明版权 最近BBSXP论坛可以说是一点都不平静.漏洞一个接一个暴出来.上次对showforum.asp这个文件的漏洞分析过后,没多久,又暴出blog.asp存在漏洞.于是俺这个菜鸟的心再不能平静了,不要每次都等着人家给我们找漏洞,咱自己也来分析一把看看. 首先,我们回顾一下showforum.asp中的漏洞,还记得order变量,是经过了HTMLncode过滤了以后才放到SQL语句中去执行的.再来看看blog.

  • Java 深入探究讲解工厂方法模式

    目录 1. 工厂方法模式介绍 2. 工厂方法模式类图UML 3. 工厂方法模式角色说明 4. 代码实现 5. 工厂模式再探究 6. 优缺点 7. 应用场景 1. 工厂方法模式介绍 定义:工厂方法模式是对简单工厂模式进一步的抽象化,好处是可以使系统不修改原来代码的情况下引进新的产品,即满足开闭原则.定义一个用于创建对象接口,让子类决定实例化哪一个类,使一个类的实例化延迟到子类中. 2. 工厂方法模式类图UML 3. 工厂方法模式角色说明 抽象工厂(AbstractFactory):提供了创建产品的

  • Java 深入探究讲解抽象工厂模式

    目录 1. 抽象工厂模式解决 2. 抽象工厂类图UML 3. 抽象工厂模式的主要角色 4. 代码实现 5. 抽象工厂方法再探究 6. 优缺点 7. 适用示例 解决工厂方法模式的问题:一个具体工厂只能创建一类产品,而实际过程中一个工厂往往需要生成很多的产品,这种可以采用抽象工厂模式. 1. 抽象工厂模式解决 定义:提供一个创建一系列相关或者互相依赖对象的接口,无需指定他们的具体的类,具体的工厂负责实现具体的产品的实例.使一个工厂可以产生多个产品. 2. 抽象工厂类图UML 3. 抽象工厂模式的主要

  • Python中常用操作字符串的函数与方法总结

    例如这样一个字符串 Python,它就是几个字符:P,y,t,h,o,n,排列起来.这种排列是非常严格的,不仅仅是字符本身,而且还有顺序,换言之,如果某个字符换了,就编程一个新字符串了:如果这些字符顺序发生变化了,也成为了一个新字符串. 在 Python 中,把像字符串这样的对象类型(后面还会冒出来类似的其它有这种特点的对象类型,比如列表),统称为序列.顾名思义,序列就是"有序排列". 比如水泊梁山的 108 个好汉(里面分明也有女的,难道女汉子是从这里来的吗?),就是一个"

  • 跟老齐学Python之玩转字符串(2)更新篇

    上一章中已经讲到连接两个字符串的一种方法.复习一下: 复制代码 代码如下: >>> a= 'py' >>> b= 'thon' >>> a+b 'python' 既然这是一种方法,言外之意,还有另外一种方法. 连接字符串的方法2 在说方法2之前,先说明一下什么是占位符,此前在讲解变量(参数)的时候,提到了占位符,这里对占位符做一个比较严格的定义: 来自百度百科的定义: 顾名思义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 根据这个定

  • PHP反序列化字符串逃逸实例详解

    通过CTF比赛了解PHP反序列化,记录自己的学习. 借用哈大佬们的名言 任何具有一定结构的数据,如果经过了某些处理而把结构体本身的结构给打乱了,则有可能会产生漏洞. 0CTF 2016piapiapia-----反序列化后长度递增 安询杯2019-easy_serialize_php-----反序列化后长度递减 0CTF 2016piapiapia 由于是代码审计,直接访问www.zip发现备份的源码,有一下文件,flag就在config.php,因此读取即可 class.php        

  • Vue生命周期深入分析总结

    目录 一.生命周期图 二.生命周期三个组成部分 第一节-初始化 beforeCreate created beforeMount mounted 第二节-更新状态 beforeUpdate updated 第三节-销毁实例 beforeDestroy destroyed 简单的对生命周期总结 常用的生命周期钩子 关于销毁Vue实例 三.代码测试生命周期 四.再探究 总结 一.生命周期图 官网图片,先了解一下流程 二.生命周期三个组成部分 第一节-初始化 beforeCreate 初始化之后,数据

  • BBSXP5.15跨站攻击漏洞

    前言:在新云网站管理系统1.02出来的时候,他的留言本就存在跨站漏洞,我测试了黑客动画吧,还好没有开放留言本功能,然后又测试了黑软基地 居然可以成功利用,和新云官方网站都成功拿倒了管理元的cookies. 想不到吧. 看来跨站不得不防范啊! BBSXP的漏洞近段时间闹得可火.现有的漏洞大家都见过了,就不说了.今晚无聊,看了看BBSXP 5.15最新版的几个文件代码,发现还是存在跨站攻击的漏洞. Cookies.asp文件,代码如下: 对提交的 "no" 参数没做处理.再看setup.a

  • BBSXP5.15最新漏洞精简版

    首先打开www.google.com在输入Po......bBsxp5.15有很多这样的论坛,随便点个,好就这个bbs.yuntea.com 真幸运,这个站还没打上补丁,一口做气杀到底,bbsxp5.15最新漏洞 ,漏洞主要出在BLOG.ASP 可以让直接构造数据库命令 blog.asp?id=1%20union%20select%20top%201%201,[adminpassword],1,1,1,1,1%20from%20[clubconfig] 后台区长的md5密码就显示出来了. 前台密

  • PHP-CGI远程代码执行漏洞分析与防范

    CVE-2012-1823出来时据说是"PHP远程代码执行漏洞",曾经也"轰动一时",当时的我只是刚踏入安全门的一个小菜,直到前段时间tomato师傅让我看一个案例,我才想起来这个漏洞.通过在 Vulhub 中对这个漏洞环境的搭建与漏洞原理的分析,我觉得还挺有意思的,故写出一篇文章来,和大家分享. 首先,介绍一下PHP的运行模式. 下载PHP源码,可以看到其中有个目录叫sapi.sapi在PHP中的作用,类似于一个消息的"传递者",比如我在<

随机推荐