这章,可能我总结开会比较长,图比较多,因为,我在做了一半,走进了一个死胡同,脑子,一下子没想开到底为啥。。。。
然后我自己想了好长时间也没想开,我也不想直接就去看源码,所以就先去百度了一下,结果一下子,我又跳进另一个坑了。。。。正如这章的顶图,MySQL语句,我看人家正好用这个分析,为什么大家在构造语句的时候要用这个SQL语句,我自己想了想,我好像没总结这么细,所以就趁着这章,把那个SQL语句的在MySQL里的用法,写写,总结总结,然后再打第四关。
我先上一个我将用到的命令图,大家先看一下,防止你看我下面的操作的时候,不知道啥意思。
不杂多,我就是简单的说说这几个。
首先我们下连接到 MySQL 这个操作命令里,由于我自己用的 xampp ,所以我就直接打了个 MySQL 进入到这个操作行(正因为我这里我的操作失误,导致了我下面走了个死胡同。。。)
show databases; 输入这个,显示当前数据库所有库名。
我的擦,杂才两个,还一个是系统默认的?当时我就楞了,没想通,我应该好多才是啊?不管了先连接到 test 这个数据库里。
use test ; 连接到这个数据库里。
连接成功, 我开始显示所有表名,我输入 show tables;
我的擦,啥都没有,这是搞啥子?真™想不通。。。。
我看看我的PHPmyadmin数据库,有没有数据,为啥会出现这个问题。。
好吧,确实,啥都没有。。。。
那我再连接全部的呢个虚拟库看看。。。
然后显示所有表名。。。
终于,出来表名,,,,我就说我的操作不会错。(其实我还是犯在上面的失误中,一会到最后我再解释。。。)
对了,我下面用了 desc 这个操作命令,让其显示出结构。
关于 desc 的介绍,我还专门去网上截了一个图。
然后我开始让其列出下面所有表里的数据。。。。
(比较乱,但是操作没错。。。)
毕竟数据比较多。。。。。
最后,我开始查里面的数据。
(也就是这里,我开始跳不出这个坑了!!!!)
(我自己给自己挖了个深坑。。。。。。)
当我弄到这里,我还是没意识到,我到底哪一步操作失误了。。。
后来想了想,是不是我没有连接 root数据库?我在试试看。。。。
好吧,确实是,我一开的这个坑。。。。这里补上了,但是我上个坑里,我还又进一个坑,我直到下面的操作时,我才意识到。。。。
看出来了没?我老是拿错数据库。。。。要不。。。坑啊啊啊!!!
然后我再查询列名。
好了,到这里,我的MySQL数据库操作就结束了,相信大家看到这里,应该能理解,我们在构造SQL注入语句时,要这样构造了吧?
我要开始闯第四关了!!!!
常规的 and 1=1 ,测试。
回显正常,那继续 and 1=2 。
还是正常!漂亮,继续输入 ' ,来测试。
我的法克!!!
就是这一步,对没错,就是这一步,我才开始有了上面呢个坑了的!!!
可能是我好久没玩手工注入的原理,我竟然想了好半天,啥原理。。。。
如果放在以前,我肯定测试所有符号来一遍的。。。
不管了试试昨天的语句,看看能不能过去。
好吧,行不通应该。。。。
最后找了一下资料,我没去直接看源码,感觉看了源码,就没啥意思了,,搜资料的话,还是有一点神秘感。
最后得出,用 " 这个,测试。
好的,成功报错。。。。
复制报错语句,开始分析。
好像懂了,和昨天的差不多,就是编程双引号了。
那么开始构造闭合语句。
常规的我第一个就想开呢个,开始测试能够成功。
and 1=1.
再来 and 1=2.
可以的。说明这个闭合成功了。
想开昨天关于搜索注入时,有人发的那个闭合法,我感觉也能闭合成功,我就来试试。
就是这个,我来 and 1=1 .测试下。
正常,再来, and 1=2 。
可以的,说明这个方法,可行。
原本就准备这样结束的,后来想了想,还有我们的注释法,还没用了。。。。
这个如何能少了我的注释法?
开始测试!!!!
再来!
完美!