您当前的位置:首页 > 电脑百科 > 安全防护 > 服务器/网站

Web安全防范知识基础讲解

时间:2020-06-09 09:28:32  来源:  作者:

SQL注入攻击

#!/usr/bin/env Python
# -*- coding: utf-8 -*-
from flask import Flask,request
import pyMySQL

App = Flask(__name__)
"""
SQL语句注入
    在编写SQL语句时,如果直接将用户传入的数据作为参数使用字符串拼接的方式插入到SQL查询中,那么攻击者可以通过注入其他语句来执行攻击操作,这些攻击操作包括可以通过SQL语句做的任何事:获取敏感数据、修改数据、删除数据库表……
"""
app.route('/')
def index():
    """
    示例
        假设我们的程序是一个学生信息查询程序,其中的某个视图函数接收用户输入的密码,返回根据密码查询对应的数据。我们的数据库由一个db对象表示,SQL语句通过 execute()方法执行
        url=/?pwd='or 1=1--  ==变成==> sql = select * from students where pwd='' or 1=1--;'
        这时会把 students表中的所有记录全部査询并返回,也就意味着所有的记录都被攻击者窃取了。更可怕的是,如果攻击者将 pwd参数的值设为"';drop table users; --"那么查询语句就会变成
        sql = select * from students where pwd=''; drop table users; --;'
        执行这个语句会把 students表中的所有记录全部删除掉。
    ps
        ; ==>用来结束一行语句
        -- ==>用来注释后面的语句
    防范方法:
        1、orm可以一定程度上避免sql注入问题
        2、验证输入类型==》一个视图函数直接收整型id查询,可以在url规则中限制url变量为整型
        3、参数化查询,在构建sql语句时避免使用拼接字符串或者字符串格式化方式来构建sql,使用参数化查询方法
            例:sqlite3库==》db.execute('select * from students where pwd=?',pwd)
        4、转义特殊字符,例如引号,分号,横线  ==》 使用参数化查询时,各种接口库会为我们做转义工作
    """
    conn = pymysql.connect(**base_data_text)
    cursor = conn.cursor()
    pwd = request.args.get('pwd')
    cur = cursor.execute("select * from students where pwd='%s';" % pwd)
    ret = cur.fetchall()
    return ret

# 集体sql注入相关文档: https://www.owasp.org/index.php/SQL_Injection

xss攻击

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask import Flask, request
"""
xss攻击【跨站脚本】
    XSS是注入攻击的一种,攻击者通过将代码注入被攻击者的网站中,用户一且访问网页便会执行被注入的恶意脚本。XSS攻击主要分为反射型XSS攻击( Reflected XSS Attack)和存储型XSS攻击( Stored XSSAttack)
"""
app = Flask(__name__)


@app.route('/he')
def index():
    """
    示例
    1、反射型XSS又称为非持久型XSS
        反射型XSS又称为非持久型XSS(Non- Persistent XSS)。当某个站点存在XSS漏洞时,这种攻击会通过URL注入攻击脚本,只有当用户访问这个URL时才会执行攻击脚本
        以下视图接收用户通过査询字符串传入的数据,未做任何处理就把它直接插入到返回的响应主体中,返回给客户端。如果某个用户输入了一段 JAVAscript代码作为查询参数name的值
        请求
            http://127.0.0.1:5000/he?name=<script>alert('lalalal);</script>
        响应
            <h1>hello <script>alert('lalalal);</script></h1>
        前端展示
            会谈出一个窗口内容为lalalal
    产生的影响:
        能支持js弹窗,那么就可用js代码来做任何事情,例如发起请求,重定向,发布广告【ps:html css也可以影响页面正常的输出,篡改页面样式,插入图片等】
    2、存储型XSS也被称为持久型XSS( persistent XSS)
        存储型XSS也被称为持久型XSS( persistent XSS),这种类型的XSS攻击更常见,危害也更大。它和反射型XSS类似,不过会把攻击代码储存到数据库中,任何用户访问包含攻击代码的页面都会被殃及。
        比如,某个网站通过表单接收用户的留言,如果服务器接收数据后未经处理就存储到数据库中,那么用户可以在留言中插入任意JS代码
        提交
            加入重定向代码
            <script>window.location.href="http://www.baidu.com";</script>
        响应
            任意用户访问留言板,都会执行js脚本
        解决办法
            1》对html进行转义,确保用户输入的内容仅做文本展示
            2》验证用户输入
    """
    name = request.args.get('name')
    return "<h1>hello {}</h1>".format(name)

if __name__ == '__main__':
    app.run()
    
# xss攻击相关  https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)

csrf攻击

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask import Flask, request,abort
"""
CSRF攻击【跨转请求伪造】
    原理:
        某用户登录了A网站,认证信息保存在cookie中。当用户访问攻击者创建的B网站时,攻击者通过在B网站发送个伪造的请求提交到A网站服务器上,
        让A网站服务器误以为请求来自于自己的网站,于是执行相应的操作,该用户的信息便遭到了篡改。总结起来就是,攻击者利用用户在浏览器中保存
        的认证信息,向对应的站点发送伪造请求。
"""
app = Flask(__name__)


@app.route('/he/delete')
def delete_index():
    """
    示例:
        假设我们网站是一个社交网站(127.0.0.1),简称网站A:攻击者的网站可以是任意类型的网站,简称网站B。在我们的网站中,删除账户的操作通过GET请求执行,由使用下面的 delete_index视图处理
        当用户登录后,只要访问127.0.0.1/he/delete就会删除账户。那么在攻击者的网站上,只需要创建一个显示图片的img标签,其中的sc属性加入删除账户的URL
            <img src="http://127.0.0.1/he/delete">
        当用户访问B网站时,浏览器在解析网页时会自动向img标签的src属性中的地址发起请求。此时你在A网站的登录信息保存在 cookie中,因此,仅仅是访问B网站的页面就会让你的账户被删除掉。
        虽然很少有网站使用get请求来处理包含数据更改的敏感操作,但是即使使用post请求,也可以内嵌隐藏表单使用js发起攻击
    防范措施
        1》正确使用http方法
        2》csrf令牌校验
            flask-seasurf:https://github.com/maxcountryman/flask-seasurf
            flask-wtf:https://github.com/lepture/flask-wtf
    """
    if not current_user.authenticated:
        abort(401)
    current_user.delete()
    return 'Deleted'


if __name__ == '__main__':
    app.run()

#  csrf攻击相关  https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

更多攻击及相关连接

  TOP25种攻击方式 
https://cwe.mitre.org/top25/

  漏洞检查工具webscarab 
https://github.com/OWASP/OWASP-WebScarab

结语

如果大家对web安全以及安全方面有什么好的方法或者看法,欢迎留言讨论!

Web安全防范知识基础讲解

 



Tags:Web安全   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  Tags: Web安全  点击:(20)  评论:(0)  加入收藏
一、概述服务端未对传入的跳转url变量进行检查和控制,可导致恶意用户构造一个恶意地址,诱导用户跳转到恶意网站。跳转漏洞一般用于钓鱼攻击,通过跳转到恶意网站欺骗用户输入用...【详细内容】
2021-06-24  Tags: Web安全  点击:(132)  评论:(0)  加入收藏
本文汇总了2020年第二季度全球发布的最新Web安全工具。由于新冠疫情肆虐,2020年的DEF CON黑客大会已经转移到线上,但是网络安全爱好者有望在8月初线上会议期间看到大量新的黑...【详细内容】
2020-07-11  Tags: Web安全  点击:(126)  评论:(0)  加入收藏
SQL注入攻击#!/usr/bin/env python# -*- coding: utf-8 -*-from flask import Flask,requestimport pymysqlapp = Flask(__name__)"""SQL语句注入 在编写SQL语句时,如果...【详细内容】
2020-06-09  Tags: Web安全  点击:(90)  评论:(0)  加入收藏
1.SQL注入原理:1).SQL命令可查询、插入、更新、删除等,命令的串接。而以分号字元为不同命 令的区别。(原本的作用是用于SubQuery或作为查询、插入、更新、删除&hellip;&hell...【详细内容】
2020-05-06  Tags: Web安全  点击:(67)  评论:(0)  加入收藏
CSRF攻击即跨站请求伪造(跨站点请求伪造),是一种对网站的恶意利用,听起来似乎与XSS跨站脚本攻击有点相似,但实际上彼此相差很大,XSS利用的是站点内的信任用户,而CSRF则是通过伪装...【详细内容】
2019-12-20  Tags: Web安全  点击:(85)  评论:(0)  加入收藏
背景介绍Web应用一般是指B/S架构的通过HTTP/HTTPS协议提供服务的统称。随着互联网的发展,Web应用已经融入了我们的日常生活的各个方面。在目前的Web应用中,大多数应用不都是静...【详细内容】
2019-10-09  Tags: Web安全  点击:(112)  评论:(0)  加入收藏
为了对Web安全有个整体的认识,整理一下常见的Web安全漏洞类型,主要参考于OWASP组织历年来所研究发布的项目文档。01:注入漏洞1)SQL注入(SQL Injection)由于程序对SQL相关的一些敏...【详细内容】
2019-09-18  Tags: Web安全  点击:(178)  评论:(0)  加入收藏
这篇文章写的是关于cookie的存储和获取,小白们可以看一看看,大佬飘过~首先,我们既然说到cookie的存储和获取,我们就要明确什么是cookie?Cookie说白了就是储存在用户本地终端上的...【详细内容】
2019-07-26  Tags: Web安全  点击:(244)  评论:(0)  加入收藏
随着互联网的飞速发展,web应用在软件开发中所扮演的角色变得越来越重要,同时,web应用遭受着格外多的安全攻击,其原因在于,现在的网站以及在网站上运行的应用在某种意义上来说,它...【详细内容】
2019-07-24  Tags: Web安全  点击:(326)  评论:(0)  加入收藏
▌简易百科推荐
在最近的一波攻击中,黑客利用多个插件中未修补的漏洞攻击了 160 万个 WordPress 网站。 易受攻击的插件对 WordPress 网站产生了的巨大攻击数据。 Wordfence 最近发现 WordPr...【详细内容】
2021-12-16  蚁安    Tags:WordPress   点击:(9)  评论:(0)  加入收藏
事件起因从安全分析系统里面发现一条带有病毒的下载,然后针对这条记录展开了一系列的分析分析过程1.登录到被感染服务器,查看系统状况,hadoop 这个用户在 2020/6/18 20:32 从这...【详细内容】
2021-11-23  Z2990Lig    Tags:SSH   点击:(32)  评论:(0)  加入收藏
1、除了服务器需要用的一些正规软件,其它都不要安装。2、在用户中把administrator改名,这样做的目的是即使对方暴破了我们的密码用户名也不容易猜住,相当于又加了一道关卡。...【详细内容】
2021-11-01  IT小哥吧    Tags:服务器   点击:(37)  评论:(0)  加入收藏
账户安全(1)更名administrator本地用户并禁用guest账户步骤:点击“开始”,找到“管理工具”,点击里面的“计算机管理”,找到“本地用户和组” (2)设定账户锁定策略尝试5次失败...【详细内容】
2021-10-12  Kali与编程  今日头条  Tags:Windows主机   点击:(62)  评论:(0)  加入收藏
本文主要介绍以Microsoft的Windows Server 2019 ,版本:Datacenter(Domain Controller)安全加固保护.企业随着规模不断扩大,业务增多,信息安全建设是企业里一条只有重点没有终点...【详细内容】
2021-09-17  Vireshark    Tags:服务器安全   点击:(64)  评论:(0)  加入收藏
目录常见共享命令IPC$IPC$的利用条件1:开启了139、445端口2:目标主机开启了IPC$共享3:IPC连接报错IPC空连接空连接可以做什么?(毫无作用)IPC$非空连接IPC$非空连接可以做什么?di...【详细内容】
2021-09-16  网络说安全    Tags:系统安全   点击:(86)  评论:(0)  加入收藏
昨天一个老哥找到我,说他的服务器这几天一直被CC攻击,问我这边有没有什么解决的方法? 近年来,网络攻击事件越来越频繁,最常见的就是CC攻击和DDOS攻击,主要的区别就是针对的对象不...【详细内容】
2021-09-10  小蚁GDRAGON    Tags:cc攻击   点击:(58)  评论:(0)  加入收藏
网站页面上的登录操作,通常都是输入帐号密码,传输至网站后台验证。在网站页面、数据传输中,通过技术手段,都可以得到用户输入的信息,并可以修改,从而发起网络攻击。典型的如:使用自...【详细内容】
2021-08-30  修丹道的程序猿    Tags:登录方式   点击:(62)  评论:(0)  加入收藏
网络安全研究人员披露了一类影响主要 DNS 即服务 (DNSaaS) 提供商的新漏洞,这些漏洞可能允许攻击者从企业网络中窃取敏感信息。基础设施安全公司 Wiz 的研究人员 Shir Tamar...【详细内容】
2021-08-12  零日时代    Tags:漏洞   点击:(66)  评论:(0)  加入收藏
001暴力破解1. 指定用户名爆破密码传统型爆破思路,用户名可以通过猜测或者信息收集获得。猜测:admin、网站域名等信息收集:新闻发布人、whoami等2. 指定密码爆破用户名如果是后...【详细内容】
2021-07-23  KaliMa  今日头条  Tags:登陆框   点击:(85)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条