这两天学习了一下关于SQL的注入,然后又遇到了一些坑坑。。。嗯,日常遇到坑的掌柜已经习惯了填坑的日常!!!😂好了,回到正题。

PS:本博文所用学习资料主要来源于《SQL注入:你的SQL是如何被注入的?

  1. 第一个坑就是👉:用 sqli-labs 模拟一次SQL注入实验的时候报错 “Fatal error:Uncaught Error:Call to undefined function mysql_connect()”,如下图。

    调用未定义的函数???怎么回事?不是已经在phpStudy里面集成了sqli-labs的运行环境了吗?掌柜搜索了一番,有同样问题的朋友,但是没有给出相应的解法。。。

    于是掌柜根据填坑太多的经验推测:难道是php版本配置那里有问题?
    一试,果真!!!原来配置phpStudy环境的时候,默认一开始使用的是php7.3.4版本,但是这个对于sqli-labs太高了。。。要用5开头的版本才可以

    然后就成功配置好sqli-labs了。

    接下来就愉快地进行一次SQL的模拟注入实验。

    紧接着又来到用SQLmap 工具进行 SQL 注入检测这里。于是,又遇到第二个坑👇
  2. sqlmap错误的安装? 看报错图:

    咦?掌柜这是跟着GitHub官方仓库下的安装步骤走的,咋就安装出错了。。。再次求助于强大的谷歌后发现,是sqlmap的文件位置安装错了!!!
    要把整个解压后的👉sqlmap文件安装到(你自己安装的)Python文件目录下👈。

像这样(掌柜这里Python安在E盘了,就把sqlmap放到E盘对应得Python文件夹下面):

接着在桌面创建了sqlmap的快捷方式:

记着修改该快捷方式的属性,把起始位置改为你的sqlmap的安装位置

就可以成功开始检测SQL的注入。

如果你不放心刚刚是否安装好了sqlmap这个工具,可以用官方的这个文件来测试一下。掌柜输入sqlmap.py -h命令后发现并没有出现预期的画面,而是直接跳转VSCode进行了模块的更新??这跟预想的不对啊。。。

再次检查后发现掌柜在命令行少输入了一个python😅,看来Windows10 也跟Linux一样的输入法,加上python后再次运行这个官方文件,就出现这样的画面代表sqlmap安装成功了!

然后掌柜继续进行SQL注入的检查。

当走到查询数据表中某些字段的值这一步的时候,第三个坑来了。

  1. 其实这个不算坑,但是需要注意一下有两个选项的选择
  • 第一个问你要不要存储hash值作为临时文件,记得选👉Y(就是最底下那行)
  • 另一个就是这第一行,问你要不要破解它们?记得选👉N !!!

    这样就会秒出结果。如果你不这么选的话,像掌柜一开始那样选了其他值,恭喜你!虽然会得到同样的查询结果,但是这会经过一个漫长的等待时间(10分钟左右)。。。还会导致CPU瞬间飙升!

    好了🧐SQL注入的学习到这里就暂时结束了,感觉还挺有趣的,后面有机会再继续学习!

参考资料:
Windows 上 sqlmap的使用教程
sqlmap的官方GitHub