邪恶八进制信息安全团队技术讨论组's Archiver

exploit 2004-11-20 21:18

[转载]SQL 射入概念

来源:火狐论坛

例子在用途之下MySQL 因为它好似是多数被使用的数据库 在这个网。同时相似的技术可能适用于其他人。在每个SQL 有一那 个" 是独特对那个产品的特点" 。MySQL 允许评论用法在SQL 条目 :
选择* 从桌/ * foo * /

在MySQL, 有引伸对它哪些 允许插入MySQL 具体代码在方式:
选择 / *! SQL_NO_CACHE * / 从桌

评论显示以上评论对待在 每个数据库除了MySQL. MySQL 看一看一个在评论里面和也许改变他 的行为。例如, 这得到执行只如果MySQL 是版本4.0.0 或比较高 :
选择/ *!40000 SQL_NO_CACHE * / 从桌

这可能是极端有用为渗透测试器对发现数据库在使用中和 他的版本在瞎眼:
尝试
[url]http://foo/web.php?table=38[/url] - 我们 得到正常屏幕
[url]http://foo/web.php?table=38/[/url]*%20s * / - 我们得到正常屏幕
[url]http://foo/web.php?table=38/[/url]*!%20s * / - 我们得到一个异常屏幕因为句法错误在评论 - MySQL 是在使用中
[url]http://foo/web.php?table=38/[/url]*!30000%20s * / - 我们得到一个异常屏幕, MySQL 是至少 3.x.x
[url]http://foo/web.php?table=38/[/url]*!40000%20s * / - 我们得到一个异常屏幕, MySQL 是至少 4.x.x
[url]http://foo/web.php?table=38/[/url]*!50000%20s * / - 我们得到正常屏幕, MySQL 是在5.x.x 之下
[url]http://foo/web.php?table=38/[/url]*!40020%20s * / - 我们得到正常屏幕, MySQL 是在4.0.20 以下
[url]http://foo/web.php?table=38/[/url]*!40017%20s * / - 我们得到一个异常屏幕, MySQL 是至少 4.0.17
[url]http://foo/web.php?table=38/[/url]*!40018%20s * / - 我们得到正常屏幕, MySQL 是在4.0.18 以下

我们 能断定, MySQL 运行在站点是4.0.17 。

这是有用的信息因为我们 也许然后知道哪exploits/vulnerabilities 其次尝试。在MySQL 例 如各个系列3.x.x, 4.x.x 和5.x.x 有另外功能。

另, 独立想法。这研究多数系统没有变动。看MySQL 数据 库引擎缺省行为:
mysql > 选择9e0;
+-----+
| 9e0 |
+-----+
| 9 |
+-----+
1 列在集合(0.02 秒)

mysql > 选择9e2;
+-----+
| 9e2 |
+-----+
| 900 |
+-----+
1 列在集合(0.00 秒)

多数语言口译员正在设法猜测某事关 于他们的输入。这输入得到确认反对长宽和通过。如此我们能自由 地通过9e9 某一数据库询问在后端。PHP 人经常建议使用作用象 is_int($_GET['foo ' ]) 。这不阻拦这个方法照原样仍然内部, 并且这长期是只3 个字符。但它也许采取你的数据库服务器下来。

Tonu 有好渗透测试的案件当有几乎不可能收到任一错误信息从这个系统 。最后Tonu 设法送某一9e999 某处作为行间空格特别大的消息30 秒相似的" PHP 暂停在something.inc " 的输入。谁运作为渗透测 试知道多么重要的是任一信息关于系统internals 。Tonu 能够下载 行间空格特别大对数据漏的这个公司文件

页: [1]
© 1999-2008 EvilOctal Security Team