正在卓尼小乱 发表于 2018-9-12 16:38:20

SQL注入的学习笔记之2

开始第二节,关于sql注入点的寻找问题。
从这里我开始感觉这篇教程的优点,让我们自己写一段sql代码,自己来注入,中间还解除了mysql数据库的创建,无疑让我们非常直观的了解了sql注入的原理和过程。在这里给教程作者点个赞。

2.1是输入id=1’探测注入点,笔者曾经先接触过实验吧简单的sql类注入习题,这也是最基本的探测SQL注入点的方法,但一直不知其所以然。
而在这里,我们可以将输入的值:1’代入php语句,有$querry = "select * from users where id =1’”;
Mysql_querry()函数发送查询语句,语句执行错误返回FALSE,因为没有1’id号,而结果就是
$result = mysql_fetch_array($sql);因为参数为逻辑值FALSE而执行错误,程序报错。
也由此可以确定这里存在一个SQL注入点,这里不懂的去看SQL注入的概念。

另var_dump()变量的功能室打印变量信息。

2.2中的前半部分不讲,很简单,笔者主要在数据遍历这里遇到了难题。
根据作者的代码改完之后,发现自己的第一行无法显示。



如图:
看到这里一开始肯定很疑惑的,反复检查代码没有问题后,我再度仔细查看了mysql_fetch_array()的说明,发现该函数的返回结果是数组指针形式的,学过编程语言的朋友应该都知道指针概念,没学过的也不要紧,慢慢学,而且我后面会总结一下该函数功能,相信即使不会语言,也可以理解。
下面是我对于mysql_fetch_array()函数的理解:
代码中的$result,$result代表的是数据表的一列。
比如$result代表是id这一列,这一整个字段。
如果你在php代码中加上$result的输出,那么你就会看见之前自己设置的password列。
这是作者在教程中没有说明的。
有了列的概念,那么请大家思考?他的行是什么来控制的呢?
是mysql_fetch_array()的每一次调用,注意代码:
        $querry = "select * from users where id =".$_GET['id'];
        $sql = mysql_query($querry,$con);
        var_dump($sql);
        $result = mysql_fetch_array($sql);

        echo "<table class='itable' border='1' cellspacing='0'

width='300px' height='150'>";
        echo "<tr>";
        echo "<td>id</td>";
        echo "<td>username</td>";
        //echo "<td>password</td>";
        echo "</tr>";
        //遍历查询结果
        while($result=mysql_fetch_array($sql))
        {
                echo "<tr>";
                echo "<td>".$result."</td>";
                echo "<td>".$result."</td>";
                //echo "<td>".$result."</td>";
                echo "</tr>";
我们在第四行,有第一次调用过mysql_fetch_array()函数,而如果我们将这一行去掉,再在网页中查看代码,你就会发现,页面完整地显示了四个结果。


对于2.3节的加法减法笔者有些难理解,我的认知为:
数字型不需要要单引号括起来,1=1,而其他类型,是‘1’=‘1’
其他类型的加法减法,是无法运算的,会导致报错等类型,所以如果加法减法可以正常显示结果,就能证明该SQL注入点是数字型。反之是其他类型。

这一部分笔者也不是很确定,姑且这么理解,如果有误,希望大家能指出来,不胜感激。

到这里SQL注入攻击初级学习完毕,向本文作者zusheng致敬,教程出自ichunqiu,该SQL注入教程来自《渗透攻防web篇》合集,大家可以去ichunqiu关注作者更多的教程。

钱闻韬 发表于 2018-9-14 13:55:12

666

学学看看 发表于 2018-9-20 19:50:21

llllzll 发表于 2018-10-18 21:40:35

强烈支持楼主ing……

helloconan 发表于 2018-10-31 09:08:31

支持楼主!

机器人小亚索 发表于 2018-10-31 09:58:54

强烈支持

yuweb 发表于 2019-9-20 08:38:42


支持楼主!

zephms 发表于 2020-2-12 07:28:42

强烈支持!
页: [1]
查看完整版本: SQL注入的学习笔记之2