ctf之web小白必備php基礎知識

2021-10-18 20:16:47 字數 3363 閱讀 3431

本篇文章對ctf之web小白很有用,請耐心看完

<? php

echo

'hello,world'

;?>

<?php表示程式開始,?>表示程式結束

每行**必須以分號結尾。

echo是php的輸出函式

<?php$a=

3;$b=

4;$c=

$a+$b;

echo

"$a+$b=".

"$c"

;?>

變數以$符號開頭,變數名稱對大小寫敏感。

可以直接通過賦值來指定變數型別。

雙引號中的變數會被解析執行。

點好.用於連線字串。

php單引號和雙引號的區別

單引號可以巢狀雙引號,雙引號可以巢狀單引號,單引號和雙引號不能相互巢狀

<?p

$a=5

;$b=6

;$c=$a

+=$b;

echo

'$a+$b=$c'

;//輸出$a+$b=$c

echo

"$a+$b

=$c"

;//輸出5+6=11

單引號內部變數和特殊字元不會解析,雙引號內部變數和特殊字元會解析。

isset()函式

<?php$a=

100;

echo

(isset

(&a));

?>

isset()函式是判斷變數是否存在,存在返回值1,不存在返回值空

php的注釋

//這是單行注釋

#這也是單行注釋

/* 這是多行注釋 */

接收表單資料

<?php

$username

=$_get

['username'];

$password

=$_post

['password'];

echo

"使用者名稱:"

."$username

"echo

"密碼:"

."$password";

?>

$_get:接收通過get方法傳遞的資料;

$_post:接收通過post方法傳遞的資料;

$_request:接收通過get或post方法傳遞的資料

if選擇語句:

<?php

$username

=$_request

['username'];

$password

=$_request

['password'];

if($username

=="admin"

and$password

=="123"

)else

?>

==:等於號

=:給變數賦值符號

for迴圈語句

<?php

$sum=0

;for($i

=1;$i

<=10;

$i++)$i

=$i-1

;echo

"1累加到$i".

"的和是$sum";

?>

while迴圈語句

<?php

$sum=0

;$i=1

;while($i

<=10)

$i=$i-

1;echo

"1累加到$i".

"的和是$sum";

?>

php運算元據庫的一般步驟

mysql_connect

("localhost"

,"root"

,"123");

//通過php連線上mysql

mysql_select_db

("test");

//選擇要操作的資料庫

mysql_query

("set names utf8"

)//設定客戶端和連線字符集

通過php進行增刪改查

mysql_close

($conn);

//釋放連線資源

建立表並向表中新增記錄

mysql>create table hack

->(-

>

id int,

->

username

varchar(20

),->

password

varchar(30

)->);

向表中新增記錄

insert into hack values(1

,'admin'

,'123');

insert into hack values(2

,'admin1'

,'123'

);

使用者身份驗證(一點要看懂)

<?php

$username

=$_get

['username'];

//get方式得到username

$password

=$_get

['password'];

//get方式得到password

$conn

=mysql_connect

("127.0.0.1"

,"root"

,"123");

//和mysql資料庫建立連線

mysql_select_db

("test");

//開啟test資料庫

mysql_query

("set names utf8");

//設定字符集

$sql

="select * from hack where username='$username

' and password='$password'";

//將輸入的使用者名稱和密碼和資料庫中的使用者名稱密碼進行匹配

$res

=mysql_query

($sql);

//執行上面的匹配語句,如果匹配成功,返回1,匹配失敗返回0if(

mysql_num_rows

($res)!=

0)else

mysql_close

($conn);

//和mysql資料庫斷開連線

?>

ctf特訓營 CTF小白入門 PHP語言特性(二)

因php核心是c語言實現的,當php字串處理遇到null x00 時,就會當作字串結束標誌來處理。在ctf比賽中,我們可以利用這個特點處理掉變數末尾我們不需要的字元。如果一段php 如下所示,file etc passwd 00即可讀到 passwd 檔案內容。當然,隨著php版本更新,這個漏洞已經...

ctf中php繞過,CTF之PHP黑魔法總結

ctf之php黑魔法總結。一 要求變數原值不同但md5或sha1相同的情況下 1.0e開頭的全部相等 判斷 240610708 和 qnkcdzo md5值型別相似,但並不相同,在 相等操作符的運算下,結果返回了true.md5和sha1一樣 2.利用陣列繞過 判斷 md5和sha1對乙個陣列進行加...

CTF 論劍場 web之 web2

進入題目,一看就是要寫指令碼的那種題2333 python指令碼如下 import requests url res requests.get url cookies res.cookies phpsessid 獲得session test res.content.decode split 1 sp...