日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实验吧 登录一下好吗

發布時間:2025/5/22 编程问答 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实验吧 登录一下好吗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ?
此篇文章是在實驗吧的writeupshang找的,寫的挺好的。

???? 這題我看到的時間比較晚,評論區有人說過濾了/ # -- select or union |等
反正不管,我先按常規試試
username=admin'--&password='or''='
回顯:
對不起,沒有此用戶!!
hint:
username:admin'
password:'''='

這時候--和or被過濾看起來好可怕,但是單引號'沒被過濾就是最幸福的事兒了(雖然有可能是經過轉義的,但題目中說只是過濾,沒說轉義,( # ▽ # ))
這時候其實只要帳號和密碼都上萬能密碼,啥都搞定,看似被過濾了n多n多,但卻是最容易注入進去的。

來一個過法:)
username=pcat'='&password=pcat'='

flag立馬就拿到,為何能過呢?很多人就疑問了?沒有or也能萬能注入?
解析過程看下面
- - - - - - - - - - - -
假設sql語句如下
select * from user where username='用戶名' and password='密碼'

當提交username=pcat'='&password=pcat'='
語句會變成如下:
select * from user where username='pcat'='' and password='pcat'=''
這時候還不夠清晰,我提取前一段判斷出來(后面的同樣道理)
username='pcat'=''
這是有2個等號,然后計算順序從左到右,
先計算username='pcat' 一般數據庫里不可能有我這個小名(若有,你就換一個字符串),所以這里返回值為0(相當于false)
然后0='' 這個結果呢?看到這里估計你也懂了,就是返回1(相當于true)

所以這樣的注入相當于
select * from user where 1 and 1
也等于 select * from user
(這題只有篩選出來的結果有3個以上才會顯示flag,沒有就一直說“對不起,沒有此用戶!!”)

好了,繼續嘮叨幾句,上面那個比較是弱類型的比較,
以下情況都會為true
1='1'
1='1.0'
1='1后接字母(再后面有數字也可以)'
0='除了非0數字開頭的字符串'
(總體上只要前面達成0的話,要使語句為true很簡單,所以這題的萬能密碼只要按照我上面的法子去寫一大把)

by pcat
2016.10.9

轉載于:https://blog.51cto.com/xiaocaione/1882321

總結

以上是生活随笔為你收集整理的实验吧 登录一下好吗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。