THMDependencyManagement
Introduction在现代,完全从头开始编写的应用程序非常罕见。此外,完全从头开始编写应用程序可能不是一个好主意,因为您很可能会通过尝试重新发明轮子而引入漏洞。相反,现代应用程序广泛使用库和软件开发工具包 (SDK) 来帮助实现应用程序的基本(有时是复杂的)功能,从而使开发人员可以专注于应用程序的关键特性和功能。
这些库和 SDK 被称为依赖项,因为我们的应用程序依赖于它们。虽然依赖项使我们的生活变得轻松很多,但它们必须得到安全管理,因为它们现在构成了应用程序整体攻击面的一部分。在这个房间里,我们将了解与依赖项管理相关的安全概念,并展示攻击者如何利用特定的依赖项管理问题。
学习目标
这个房间将教你以下概念:
依赖项管理的安全原则
保护外部和内部依赖项
依赖项混淆攻击
What are dependencies?依赖项的规模
虽然您可能认为在开发应用程序时编写了大量代码,但与您包含的各种依赖项中实际为您执行操作的代码量相比,这些代码量微不足道。让我们看一个简单的 Python 示例。
example.py
#!/usr/bin/python3import numpyx = num ...
25-1杂谈
1月其实整个月都相当于在放假了。稍微学了点go,感觉还不错。然后其他也没做什么,开始摆烂。下个月打算开始稍微一些些算法的东西。
打靶记录(一六九)之VulnHubSNAKEOIL
所渗透的主机ip为192.168.129.5
端口扫描┌──(mikannse㉿kali)-[~/vulnhub/snakeoil]└─$ sudo nmap --min-rate=10000 -p- 192.168.129.5Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-15 14:46 HKTNmap scan report for 192.168.129.5 (192.168.129.5)Host is up (0.28s latency).Not shown: 65532 closed tcp ports (reset)PORT STATE SERVICE22/tcp open ssh80/tcp open http8080/tcp open http-proxyMAC Address: 08:00:27:6F:04:3B (Oracle VirtualBox virtual NIC)Nmap done: 1 IP address (1 host up) scanned in 16.19 sec ...
打靶记录(一六八)之VulnHubEvilbox
所进行渗透的主机ip为192.168.129.3
端口扫描┌──(mikannse㉿kali)-[~/vulnhub]└─$ sudo nmap --min-rate=10000 -p- 192.168.129.3Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-15 14:00 HKTStats: 0:00:42 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 99.99% done; ETC: 14:00 (0:00:00 remaining)Nmap scan report for 192.168.129.3 (192.168.129.3)Host is up (0.24s latency).Not shown: 65533 closed tcp ports (reset)PORT STATE SERVICE22/tcp open ssh80/tcp open httpMAC ...
2024年度总结
不知道从哪里开始说起,这一年感觉过的很快,但实际上翻相册的时候发现自己原来还是做了不少事情的。并且绝对是大学四年中最忙但也最丰富的一年。从长城杯开始,到最后的国赛结尾。大大小小的比赛,以及hvv,体验感十足,收获也很大。并且一直有较强的行动力,并且感到自己一直在做该做的事情。今年产出三首原创,总算还是迈出了这一步,非常享受这一过程。不知不觉2024就结束了,竟然就这样结束了吗,真是不舍啊。
24-12杂谈
12月还是比较闲的吧,一堆比赛之后给自己放个假,期末考压力也比较小。终于可以做些别的事情了,开始了其他各式各样的学习。
Python3爬虫开发笔记第六章动态渲染页面抓取
动态渲染页面抓取JavaScript 动态渲染的页面不止 Ajax 这一种,它的分页部分是由 JavaScript 生成的,并非原始 HTML 代码,这其中并不包含 Ajax 请求。再有淘宝这种页面,它即使是 Ajax 获取的数据,但是其 Ajax 接口含有很多加密参数,我们难以直接找出其规律,也很难直接分析 Ajax 来抓取。
可以直接使用模拟浏览器运行的方式来实现,这样就可以做到在浏览器中看到是什么样,抓取的源码就是什么样,也就是可见即可爬。这样我们就不用再去管网页内部的 JavaScript 用了什么算法渲染页面,不用管网页后台的 Ajax 接口到底有哪些参数。
Selenium的使用基本使用from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support import expected_conditions as ECfrom selenium ...
Wiki.js云服务器部署及nginx反向代理配置
前言笔者所使用的是一台debian12云服务器,2h4g5Mbps,以及一个二级域名
Wiki.js初始化安装nodejs及其套件apt install -y npm
下载wiki.js源码wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
mkdir wikitar xzf wiki-js.tar.gz -C ./wikicd ./wiki
mv config.sample.yml config.yml
数据库配置安装postgresqlapt install postgresql postgresql-contrib
创建数据库sudo -u postgres psql
psql (15.8 (Debian 15.8-0+deb12u1))Type "help" for help.postgres=# ALTER USER postgres WITH PASSWORD 'postgres';postgres=# CREATE DATABASE wiki;CREATE ...
Python3爬虫开发笔记第五章Ajax数据爬取
什么是AjaxAjax,全称为 Asynchronous JavaScript and XML,即异步的 JavaScript 和 XML。它不是一门编程语言,而是利用 JavaScript 在保证页面不被刷新、页面链接不改变的情况下与服务器交换数据并更新部分网页的技术。
发送 Ajax 请求到网页更新的这个过程可以简单分为以下 3 步:
发送请求
解析内容
渲染网页
发送请求var xmlhttp;if (window.XMLHttpRequest) { //code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest();} else {//code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function() {if (xmlhttp.readyState==4 && xmlhttp.status==200) {documen ...
Python3爬虫开发笔记第四章数据存储
文件存储TXT 文本存储with open('explore.txt', 'w', encoding='utf-8') as file: file.write('\n'.join([question, author, answer])) file.write('\n' + '=' * 50 + '\n')
打开方式在刚才的实例中,open 方法的第二个参数设置成了 a,这样在每次写入文本时不会清空源文件,而是在文件末尾写入新的内容,这是一种文件打开方式。关于文件的打开方式,其实还有其他几种,这里简要介绍一下。
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb:以二进制只读方式打开一个文件。文件指针将会放在文件的开头。
r+:以读写方式打开一个文件。文件指针将会放在文件的开头。
rb+:以二进制读写方式打开一个文件。文件指针将会放在文件的开头。
w:以写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
wb:以二进制写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
w+:以读写 ...
Python3爬虫开发笔记第三章解析库的使用
Beatiful Soup使用 每一个网页都有一定的特殊有结构和层级关系,很多节点都用id或class作区分,所以可以借助它们的结构和属性来提取
简单来说,Beautiful Soup是Python的一个HTML或XML的解析库,我们用它可以方便地从网页中提取数据。
使用LXML解析器,只需在初始化Beautiful Soup时,把第二个参数改为lxml即可:
from bs4 import BeautifulSoupsoup=BeautifulSoup('<p>Hello</p>','lxml')print(soup.p.string)#Hello
示例html = """<html><head><title>The Dormouse's story</title></head><body><p class="title" name="dromouse"><b>The Dormouse's story</b></p><p c ...
打靶记录(一六七)之VulnHubDeathNote
端口扫描┌──(mikannse㉿kali)-[~/vulnhub/deathnote]└─$ sudo nmap --min-rate=10000 -p- 192.168.56.111Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-07 16:16 HKTNmap scan report for 192.168.56.111Host is up (0.069s latency).Not shown: 65533 closed tcp ports (reset)PORT STATE SERVICE22/tcp open ssh80/tcp open httpMAC Address: 08:00:27:26:04:09 (Oracle VirtualBox virtual NIC)Nmap done: 1 IP address (1 host up) scanned in 22.53 seconds
┌──(mikannse㉿kali)-[~/vulnhub/deathnote]└─$ sudo nmap -sT -s ...
