SQL注入学习part01:(结合sqli-libs学习:1-10关)

写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)

第一关

  • 登入界面

登入界面

  • 输入参数id=1

输入参数id=1

  • 输入2,3,4到12都是正常返回

  • 12以后无返回

  • 在后面添加一个单引号返回报错
    在这里插入图片描述

  • 所以可知闭合符为单引号
    在这里插入图片描述

  • 2-1正常输出1的返回值,所以为基于单引号数字型注入
    在这里插入图片描述

  • 1' order by 3 #

  • 判断表的列数至4无法正常输出,则说明只有三列

  • ?id=0 ' union select 1,2,3

  • 判断显示位
    在这里插入图片描述

  • 得到2,3显示的位置

  • get it

第二关

在这里插入图片描述

  • 界面效果如上
  • 尝试发现,id可以一直尝试到12
  • 尝试输入2-1 发现结果与2不同,与1相同

在这里插入图片描述

  • 可以确定为整数型注入
  • order by 到4发现报错
    在这里插入图片描述
  • 所以一共有三列
  • 同上使用 union select 查询显示位置
    在这里插入图片描述
  • get it

第三关

  • 输入2-1 与输入2结果相同
    在这里插入图片描述
  • 确定为字符型注入
  • 尝试单引号
    在这里插入图片描述
  • 报错,注意报错内容和第一关的报错内容区别
    在这里插入图片描述
  • 显然不一样
  • 说明第三关的闭合符不完全是单引号,且报错中有一个括号,添加尝试一下
  • ?id=2%27)%23
  • 在 ’) 后增加一个#,无报错,则说明闭合符猜测正确
    在这里插入图片描述
  • 继续order by 啥的
    在这里插入图片描述
  • get it

第四关

  • 输入2-1与2无异
    在这里插入图片描述
  • 判断为字符型
  • 所以下一把找闭合符
    在这里插入图片描述
  • 根据上一关以及经验猜测为 ” )
  • 使用语句 ?id=2-1")%23 返回正常查询值,说明闭合符号猜测正确
  • get it

第五关

在这里插入图片描述

  • 和前四关不同,输入1正常范围1-12返回值相同,都是 You are in…
  • 但是不影响猜测闭合符
    在这里插入图片描述
  • ?id=1%27%23
  • 使用这个代码可以发现闭合符为单引号

在这里插入图片描述

  • 根据order by 到4出现错误可以确定列数
  • 但是没有办法继续去注入显示位置
  • 可以确定为单引号的布尔盲注
    在这里插入图片描述
  • 构造一个布尔表达式
  • ?id=1%27%20and%201%23
  • 所以当and后面的表达式为真时,正常返回,否则无返回结果
  • 构造语句ascii(substr(database(),2,1))>101%23
  • database()为数据库名,也可以更换为其他的数据据库关于名字的参数
  • substr(str,pos,len)
  • 截取字符串str,从第pos截取len位
  • ascii()转换成ascii码值,然后与给定值进行比大小,从而使用二分法分别确定字符串中的每一位
  • 后续以字符串长度为例进行布尔盲注
    在这里插入图片描述
  • get it

第六关

  • 比较麻烦的去应对第六关的报错与否
  • 但是在尝试闭合符的时候尝试成功了
    在这里插入图片描述
  • 确认闭合符为双引号
  • 不如尝试第五关的做法,发现做出来了
    在这里插入图片描述
  • get it

第七关

-List item

  • 提示是使用外部文件
  • 不急先判断闭合符
    在这里插入图片描述
  • 单引号报错无提示
  • 尝试很久发现为闭合符为’))(其实是看别的大佬的wp)
    在这里插入图片描述
  • 但是发现尝试前面的布尔盲注的方法仍然可以得出结果
  • 关于这个文件上传的思路与方法,后续会重点讨论
  • get it

第八关

  • 尝试了多种组合后发现’才是闭合符
    在这里插入图片描述
    在这里插入图片描述
  • 所以可以确定为单引号的布尔盲注
    在这里插入图片描述
  • ?id=1%27%20and%20length(database())=8%20%23
    在这里插入图片描述
  • 按照前面的方法做出来了
  • get it

第九关

在这里插入图片描述

  • 很夸张的发现貌似报错不会返回
  • 无论输入说明
    在这里插入图片描述
  • 查资料发现这种东西叫做时间盲注(挺吃饱了撑的)
  • 所以可以构造函数根据返回时间来判断返回结果的成功与否
  • 比如说sleep()函数

在这里插入图片描述

  • 使用sleep函数来确定闭合符
  • ?id=1%27%20and%20sleep(3)%23
  • 如果闭合符猜测正确,则网页刷新时间应该为3s,很容易区分

在这里插入图片描述

  • 所以可以确定闭合符为单引号
  • 然后用时间盲注的方法去判断其他参数

在这里插入图片描述

  • get it

第十关

在这里插入图片描述

  • 返回结果和第九关类似
  • 所以还是时间盲注吧
  • 同第九关用sleep()函数来确定闭合符
    在这里插入图片描述
  • 成功确定闭合符为双引号
  • 所以同第九题

在这里插入图片描述

  • 确定数据库名字长度为例子
  • get it

摸会鱼,马上继续
加油

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值