全国(山东、安徽)职业技能大赛--信息安全管理与评估大赛代码审计题目+答案讲解

 博主介绍

‍ 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
点赞➕评论➕收藏 == 养成习惯(一键三连)
欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋
作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

任务3:代码审计

1.存在脆弱性的代码行数

2.代码可能会受到的网络安全攻击类型

3.结合代码简述漏洞产生的原因


任务3:代码审计

代码审计是指对源代码进行检查,寻找代码存在的脆弱性,这是一项需要多方面技能的技术,作为一个高级软件开发者,代码安全作为你的日常工作中非常重要的一部分,因为大部分代码从语法和语义上来说是正确的,你必须依赖你的知识和经验来完成工作。每个团队都将获得一个代码列表,查看每一段代码然后回答答题卡里的问题。

本任务素材清单:答题模板上提供的代码片段。

请按要求完成该部分的工作任务。

任务3:代码审计
任务编号 任务描述
1 存在脆弱性的代码行数
2 代码可能会受到的网络安全攻击类型
3 结合代码简述漏洞产生的原因
import urllib.parse
import socketserver
from http.server import SimpleHTTPRequestHandler


class MyHandler(SimpleHTTPRequestHandler):
    def _set_headers(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()

    def do_GET(self):
        print("Got GET request: %s" % self.path)
        uri_c = urllib.parse.urlparse(self.path).path
        print('cmd === %s' % uri_c)

        try:
            with open(uri_c, 'rb') as file:
                self._set_headers()
                self.wfile.write(file.read())
        except IOError:
            self.send_response(404)
            self.end_headers()
            self.wfile.write(b'File not found')


def start_server():
    httpd = socketserver.TCPServer(("0.0.0.0", 8090), MyHandler)
    print('Starting httpd...')
    httpd.serve_forever()


if __name__ == "__main__":
    start_server()

1.存在脆弱性的代码行数

第15行

self.wfile.write(file.read())  

2.代码可能会受到的网络安全攻击类型

任意文件读取

3.结合代码简述漏洞产生的原因

第11、12行接受来自用户的请求,并分离URL参数,将其赋值给uri_c,第14、15行,将uri_c变量作为参数进行文件读取,最终文件读取整个逻辑可被用户自由操控导致任意文件读取漏洞

你可能感兴趣的:(全国(山东,笔记,网络,web安全,安全,python)