全国(山东、安徽)职业技能大赛--信息安全管理与评估大赛代码审计题目+答案讲解
2023-12-28 12:56:53
🍬 博主介绍
👨?🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
?主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞?评论?收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论??一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
任务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变量作为参数进行文件读取,最终文件读取整个逻辑可被用户自由操控导致任意文件读取漏洞
文章来源:https://blog.csdn.net/SENMINGya/article/details/135265977
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!