Time of Update: 2017-01-13
在PHP5之後,我們可以通過 __autoload來解決這個問題。 而且在PHP5.1之後,還提供了 spl_autoload_register() 來提供更完善的載入機制。通過閱讀了 Autoloading in PHP 這篇文章,我理解的 Autoload 的載入機制,當通過 new 來執行個體化一個類時,PHP會通過定義的__autoload 函數載入相應的檔案,如果這個類檔案使用了 extends 或者 implements 需要用到其他的類檔案,php會重新運行 autoload
Time of Update: 2017-01-13
0x00 序列化函數serialize():返回帶有變數類型和值的字串unserialize():想要將已序列化的字串變回 PHP 的值測試代碼:<?php class test{ var $a; var $b; function __construct($a,$b,$c){
Time of Update: 2017-01-13
multipart/form-data 方式post的curl庫,類比post提交的時候,預設的方式 multipart/form-data ,這個算是post提交的幾個基礎的實現方式。$postUrl = '';$postData = array( 'user_name'=>$userName, 'identity_no'=>$idCardNo);$curl = curl_init();curl_setopt(
Time of Update: 2017-01-13
PHP中常用的列印輸出的函數一步步講解echoecho函數可以同時輸出多個字串,帶多個參數,但並不要求使用圓括弧,也沒有傳回值。但是,如果帶上圓括弧也沒有問題的,因此函數本就需要圓括弧的:echo '標哥的技術部落格<br>';echo
Time of Update: 2017-01-13
前言最近老是看到有人踩在路徑的坑上面了,感覺有一點必要來說說相對路徑的一些坑,以及絕對路徑的使用問題描述首先我們先來看一下我們這個例子的目錄結構 以及這三個檔案的內容a.php<?phpinclude './c/d.php'b.php<?phpdefine('__B', 'this is a test');c/d.php<?phpinclude
Time of Update: 2017-01-13
PHP的命名空間(namespace)是php5.3之後才有的。這個概念在C#中已經很早就有了,php中的namespace其實和c#的概念是一樣的。為什麼php中要使用namespace?假設如果不使用namespace,那麼每個類在一個項目中的名字就必須是固定的。因為php在new的時候不管是調用autoload還是調用已載入過的類,都存在一個類名對應的檔案。所以在沒有namespace的時候,我們會想各種命名規則來區分不同的類,比如project1_school1_class1_Stude
Time of Update: 2017-01-13
/** * php四種基礎排序演算法的已耗用時間比較 * @authors Jesse (jesse152@163.com) * @date 2016-08-11 07:12:14 *///冒泡排序法function bubbleSort($array){ $temp = 0; for($i = 0;$i < count($array) -1;
Time of Update: 2017-01-13
前言之所以做這個,是因為這兩個函數的作用很像,都是把字串轉換成數組。explode從下面的例子可以看出,產生的數組是有對應的順序的。 代碼如下複製代碼 $pizza = "piece1 piece2 piece3 piece4 piece5 piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2//
Time of Update: 2017-01-13
10.操作符 10.1 算術操作符 算術操作符通常用於整型或雙精確度類型的資料。如果將它們應用於字串,PHP會試圖將這些字串轉換成一個數字。如果其中包含“e”或“E”字元,它就會被當作是科學標記法並被轉換成浮點數,否則將會被轉換成整數。PHP會在字串開始處尋找數字,並且使用這些數字作為該字串的值,如果沒找到數字,該字串的值則為0。 10.2 字串操作符 可以使用字串串連操作符將兩個字串串連起來產生並儲存到一個新字串中。$a =
Time of Update: 2017-01-13
簡介在php.ini中存在三項配置項:session.save_path="" --設定session的儲存路徑session.save_handler="" --設定使用者自訂儲存函數,如果想使用PHP內建會話儲存機制之外的可以使用本函數(資料庫等方式)session.auto_start boolen
Time of Update: 2017-01-13
前提知識在php類中可能會存在一些叫做魔術函數(magic 函數),這些函數會在類進行某些事件的時候自動觸發,例如__construct()會在一個對象被建立時調用,__destruct()會在一個對象銷毀時調用,__toString當對象被當做一個字串的時候被調用。常見的魔術函數有__construct()、__destruct()、__toString()、__sleep()、__wakeup()。舉例如下: 代碼如下複製代碼 <?phpclass
Time of Update: 2017-01-13
__wakeup()函數用法__wakeup()是用在還原序列化操作中。unserialize()會檢查存在一個__wakeup()方法。如果存在,則先會調用__wakeup()方法。<?phpclass A{ function __wakeup(){ echo 'Hello'; } }$c = new
Time of Update: 2017-01-13
這篇文章準備通過通過請求語句來看傳入的資料在代碼中流向,這樣或許更方便來理解這個漏洞http://[host]/[sugar]/index.php?module=Connectors&action=RunTest&source_id=ext_rest_insideview&ext_rest_insideview_[%27.phpinfo().%27]=1最後的效果就是程式會執行phpinfo()函數。流程分析入口函數action_RunTest()當訪問POC時,程式會進
Time of Update: 2017-01-13
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2016/11/1 * Time: 12:26 *//*把數字轉換成字元對應解析 * @param mixed $in String or long input to translate * @param boolean
Time of Update: 2017-01-13
下面的情況就會導致表單重複提交:點擊提交按鈕兩次。點擊重新整理按鈕。使用瀏覽器後退按鈕重複之前的操作,導致重複提交表單。使用瀏覽器記錄重複提交表單。瀏覽器重複的HTTP請求。網頁被惡意重新整理。下面是幾種解決辦法:一:利用js設定按鈕點擊後變成灰色<form name=form1 method=”POST” action=”/” target=_blank><p><input
Time of Update: 2017-01-13
使用prepared以及參數綁定查詢可根本性防止sql注入的發生:SQL語句與參數分批傳輸到sql伺服器的方式讓利用字串拼接的SQL注入沒有了施展空間。基本上你有兩種方式完成上述方法:使用PDO:$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');$stmt->execute(array('name' => $name));foreach ($stmt as $row)
Time of Update: 2017-01-13
這裡拿cve-2016-5734講講preg_replace引發的命令執行漏洞,漏洞在exploit-db上有利用指令碼,經過測試沒有問題。這裡對這個漏洞進行一下回溯跟蹤來解釋下preg_replace這個正則替換函數帶來的問題。0x01 漏洞觸發原理preg_replace漏洞觸發有兩個前提:01:第一個參數需要e標識符,有了它可以執行第二個參數的命令02:第一個參數需要在第三個參數中的中有匹配,不然echo會返回第三個參數而不執行命令,舉個例子://echo
Time of Update: 2017-01-13
1. 寫在前面最近經常會遇到一些比較有意思的漏洞,比如PHP還原序列化漏洞,PHP對象注入。這些漏洞可能在平時很難遇到,但是在CTF以及一些CMS倒是經常看到他們的背影。今天剛剛好手上看到了某CTF的代碼,但是並沒有擷取所有源碼,因此修改了部分代碼進行分析。2. 自動載入2.0
Time of Update: 2017-01-13
The shortest webshell of PHP某天閑逛wooyun,發現一篇挺有意思的文章————《32C3 CTF 兩個Web題目的Writeup》。其中提到了兩個比較有意思的東西:The shortest webshell of PHPPHP執行運算子反引號上面提及的文章,我讀前幾遍的時候是很費解的!後來,土司的P牛給我一些指點,豁然開朗Google “the shortest webshell”<?=`
Time of Update: 2017-01-13
前言PHP是一種通用的開源指令碼語言,它的文法混合了C,Java,以及Perl等優秀語言的文法。除此之外,它還提供了大量的函數庫可供開發人員使用。但是,如果使用不當,PHP也會給應用程式帶來非常大的安全風險。在這篇文章中,我們將會對PHP應用程式中經常會出現的一些問題進行深入地分析,尤其是當我們使用“==”(比較子)來進行字串比較時,可能會出現的一些安全問題。雖然近期有很多文章都圍繞著這一話題進行過一些探討,但我決定從“黑箱測試”的角度出發,討論一