日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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網站服務器誤以為請求來自于自己的網站,于是執行相應的操作,該用戶的信息便遭到了篡改??偨Y起來就是,攻擊者利用用戶在瀏覽器中保存
        的認證信息,向對應的站點發送偽造請求。
"""
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安全防范知識基礎講解

 

分享到:
標簽:Web
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定