web滲透裏常見的邏輯漏洞

漏洞原理
網站開發人員在建設網站的時候,由於驗證不嚴格,造成的bug
漏洞危害
任意用戶重置密碼
提權/越權
任意金額購買
驗證碼繞過

漏洞利用
一.修改任意用戶密碼
環境:
自行搭建的登陸平臺
條件:
修改密碼時會發送修改的url到指定郵箱,並且此url長期有效(url包括用戶名和令牌)
漏洞復現
1.正常註冊一個用戶,獲取忘記密碼時找回密碼的url
在這裏插入圖片描述

2.修改url裏的用戶名爲其他用戶,並破解後面的令牌(如此處實驗環境裏的令牌爲用戶名加md5加密後的用戶名再base64編碼)
例:修改用戶zs的密碼
zs原密碼:
在這裏插入圖片描述
修改zs密碼:
輸入:
http://127.0.0.1/loudongxuexi/ljldmimachongzhi/user/zhaohuimima.php?act=chongzhi&username=zs&r=enNmNjcwNmQ1ZGIzYWQwOTRjZmFiZDhmYjUzMjZmMWVlYw==
效果:之後更改密碼爲111
在這裏插入圖片描述
修改後張三的密碼:
在這裏插入圖片描述
總結:
由於漏洞利用了令牌長期有效,所以zs用戶必須自己修改過密碼,纔會有令牌產生,我們才能利用令牌長期有效來進行修改zs的密碼
二.提權、越權
形式
水平越權(越權):橫向,普通用戶–普通用戶,比如zs可以取得ls所有權限以及信息
垂直越權(提權):縱向,比如普通用戶–管理員–系統管理員
垂直越權(提權)
網站用戶分類(舉例)
系統管理員:可添加管理員、刪除普通用戶
管理員:審覈網站內容,審覈普通用戶
普通用戶:查看、評論、發表內容
原理
例如網站添加、刪除用戶有以下條件:
1、從頁面進行,普通用戶、管理員頁面沒有這個鏈接,系統管理員頁面有
2、驗證是否是系統管理員
如果只進行了第一步,而沒有進行第二步的驗證,或第二步驗證不完善(如只驗證普通用戶,不驗證管理員)就會造成漏洞
利用
拿到上一級用戶特有的鏈接進行訪問,若有漏洞存在就可執行改頁面所代表的權限
實例
A.登陸系統管理員,界面如下
在這裏插入圖片描述
B.點擊添加用戶,複製url
http://localhost/pikachu-master/vul/overpermission/op2/op2_admin_edit.php
C.切換成普通管理員
在這裏插入圖片描述
D.直接訪問上面的網站,發現可以添加用戶
在這裏插入圖片描述
水平越權(越權)
實例
A.查看用戶訂單信息
登錄->常看個人訂單信息,每個訂單都有一個對應的id,將自己訂單的id改爲其它訂單的id,如果存在漏洞,就可查看他人訂單信息
B.查看用戶個人信息
同上,將自己的name換成別人的name
例:登陸lucy,在lucy的頁面將姓名改爲lili
在這裏插入圖片描述
C.任意賬號登錄
正常登陸流程:輸入賬號密碼–服務器驗證–返回session信息(失敗:{“status:0”,message"shibai"}、成功:{“status:1”,message"shibai"})
漏洞利用:找一個註冊過的賬號,隨意輸入密碼,抓取頁面響應包,修改返回數據爲正常登陸數據
三.任意金額購買
A.購買商品流程
選擇商品->發起訂單請求->服務器確認訂單 ->生成支付接口(1000元)->發送給前端-> 用戶支付->銀行返回支付成功->訂單完成
B.漏洞原理
1.購買任意金額商品
將支付1000元時的請求抓包,將1000修改爲0.1,之後支付,支付成功後返回數據包,就達到0.1元購買1000元的商品
2.購買任意數量商品
將支付的請求抓包,金額改爲-1,數量改爲1,可拿到1虧錢,並得到一本書
四.驗證碼繞過
A.驗證碼以文本的形式返回到頁面
可以通過js或者其他能夠解析html的語言將驗證碼提取出來
B.驗證碼以圖片的形式返回到前端,圖片太過簡單
通過bp插件captcha識別驗證碼
C.yz.php用來生成驗證碼
先發送請求:img src=yz.php,獲取驗證碼,如果後臺邏輯中驗證碼被輸入一次後沒有清空(永久有效),就可通過一個驗證碼進行多次登陸
五.。。。。。
後續會繼續更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章