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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

《随笔 二》

發布時間:2024/9/30 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《随笔 二》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1,is_numeric(),? ctype_digit() 都是PHP中判斷 變量是否是純數字

2,PHP 中變量作用域明析:

變量的聲明的關鍵字: global,? static,? ? define,? ? ? const

global 用法:在函數外面用global 聲明的變量在函數內部 不能直接使用,要想使用必須通過全局變量數組? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? $GLOBALS['var'] 的方式使用; ?

? ? ? ? ? ? ? ? ? ? ? 在函數外部聲明的變量為全局變量,要想使用該變量,必須在函數內部重新用 global 來重新聲明該變量,說明該? ? ? ? ? ? ? ? ? ? ? ? 變量不是局部變量,可以在函數內對該變量進行一系列操作

? ? ? ? ? ? ? ? ? ? ?注意: 用global聲明的變量不能同時進行初始化

static用法:在函數內部用static聲明的變量,在函數調用結束后變量的值會被保留,但它依然是局部變量,不能再函數外部調用

? ? ? ? ? ? ? ? ? ? ?在函數外部用static聲明的變量,不能再函數內部調用

? ? ? ? ? ? ? ? ? ? 注意: 用static聲明變量時可以同時初始化,也可以改變其值

define用法:define(‘PI’,3,1415926) 可以在函數內部外部調用,必須用大寫字母

? ? ? ? ? ? ? ? ? ? ?注意: 用define聲明的變量的值不能再改變,? 調用時可以不帶$,? 必須在頂部聲明

const用法:const PI = 3.1415926??可以在函數內部外部調用,必須用大寫字母

? ? ? ? ? ? ? ? ? ? ??注意: 用const聲明的變量的值不能再改變,? 調用時可以不帶$,? 必須在頂部聲明

3,Python中變量的作用域明析:

Python中只分 局部變量? 和全局變量

? ? ?1,在函數外部定義的變量為全局變量,在函數內部定義的變量為局部變量,

? ? ? ? ? 全局變量可以在函數內部調用,但不能對其進行操作(修改,改變類型……),若強行改變其值,系統會默認生成了一個? ? ? ? ? ? 新的與原全局變量同名的局部變量,此時操作的函數的局部變量

? ? ? 2,在函數外部用 global 聲明的變量,在函數內部依然不能對其進行修改,

? ? ? ? ? ?要想在函數內部對函數外部的全局變量進行修改,操作的話,必須在函數內部重新用global 聲明

? ? ? 3,global 不能再嵌套函數中使用,如:def ……

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?def ……

? ? ? ? ? ?此時可用 nonlocal ;來代替 global

? ? ? 4,Python中沒用定義常量的語法,但約定用純大寫的字符串 的變量 為常量

? ? ? ? ? ?但此常量 不是真正的常量,它的值可以被改變

? ? ? ? ? 為實現真正的常量,可以用自定義類的方法實現常量,這要求符合“命名全部為大寫”和“值一旦被綁定便不可再修改”這兩個條件

定義一個名為 const.py 的文件

# -*- coding: utf-8 -*- # python 3.x # Filename:const.py # 定義一個常量類實現常量的功能 # # 該類定義了一個方法__setattr()__,和一個異常ConstError, ConstError類繼承 # 自類TypeError. 通過調用類自帶的字典__dict__, 判斷定義的常量是否包含在字典 # 中。如果字典中包含此變量,將拋出異常,否則,給新創建的常量賦值。 # 最后兩行代碼的作用是把const類注冊到sys.modules這個全局字典中。 class _const:class ConstError(TypeError):passdef __setattr__(self,name,value):if name in self.__dict__:raise self.ConstError("Can't rebind const (%s)" %name)self.__dict__[name]=valueimport sys sys.modules[__name__]=_const()

使用的時候只要 import const,便可以直接定義

#使用的時候只要 import const,便可以直接定義常量了,例如# test.py import const const.PI=3.14 print(const.PI)

在同一個文件中使用:
?

# -*- coding: utf-8 -*- # python 3.x # Filename:const.py # 定義一個常量類實現常量的功能 # # 該類定義了一個方法__setattr()__,和一個異常ConstError, ConstError類繼承 # 自類TypeError. 通過調用類自帶的字典__dict__, 判斷定義的常量是否包含在字典 # 中。如果字典中包含此變量,將拋出異常,否則,給新創建的常量賦值。 # 最后兩行代碼的作用是把const類注冊到sys.modules這個全局字典中。 class _const:class ConstError(TypeError):passdef __setattr__(self,name,value):if name in self.__dict__:raise self.ConstError("Can't rebind const (%s)" %name)self.__dict__[name]=valueconst = _const() const.PI=3.14 print(const.PI)

4,php中的 $_SERVER[]數組:


$_SERVER['PHP_SELF']? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#當前正在執行腳本的文件名,與?document?root相關。?

$_SERVER['SERVER_NAME']? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#當前運行腳本所在服務器主機的名稱。

$_SERVER['REQUEST_METHOD']? ? ? ? ? ? ? ? ? ? ?#訪問頁面時的請求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。?
$_SERVER['QUERY_STRING']? ? ? ? ? ? ? ? ? ? ? ? ? ?#查詢(query)的字符串。?

$_SERVER['HTTP_ACCEPT_CHARSET']? ? ? ? ??#當前請求的?Accept-Charset:?頭部的內容。例如:“iso-8859-1,*,utf-8”。

$_SERVER['HTTP_HOST']? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#當前請求的?Host:?頭部的內容。?
$_SERVER['HTTP_REFERER']? ? ? ? ? ? ? ? ? ? ? ? ? ?#鏈接到當前頁面的前一頁面的?URL?地址。?
$_SERVER['HTTP_USER_AGENT']? ? ? ? ? ? ? ? ? ? #當前請求的?User_Agent:?頭部的內容。

$_SERVER['REMOTE_ADDR']? ? ? ? ? ? ? ? ? ? ? ? ? ?#正在瀏覽當前頁面用戶的?IP?地址。?
$_SERVER['REMOTE_HOST']? ? ? ? ? ? ? ? ? ? ? ? ? ? #正在瀏覽當前頁面用戶的主機名。?
$_SERVER['REMOTE_PORT']? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #用戶連接到服務器時所使用的端口。?
$_SERVER['SCRIPT_FILENAME']? ? ? ? ? ? ? ? ? ? ? #當前執行腳本的絕對路徑名。?
$_SERVER['SERVER_ADMIN']? ? ? ? ? ? ? ? ? ? ? ? ? ? #管理員信息?
$_SERVER['SERVER_PORT']? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#服務器所使用的端口?


$_SERVER['argv']?#傳遞給該腳本的參數。?
$_SERVER['argc']?#包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。?
$_SERVER['GATEWAY_INTERFACE']?#服務器使用的?CGI?規范的版本。例如,“CGI/1.1”。?
$_SERVER['SERVER_SOFTWARE']?#服務器標識的字串,在響應請求時的頭部中給出。?
$_SERVER['SERVER_PROTOCOL']?#請求頁面時通信協議的名稱和版本。例如,“HTTP/1.0”。?
$_SERVER['DOCUMENT_ROOT']?#當前運行腳本所在的文檔根目錄。在服務器配置文件中定義。?
$_SERVER['HTTP_ACCEPT']?#當前請求的?Accept:?頭部的內容。?
$_SERVER['HTTP_ACCEPT_ENCODING']?#當前請求的?Accept-Encoding:?頭部的內容。例如:“gzip”。?
$_SERVER['HTTP_ACCEPT_LANGUAGE']#當前請求的?Accept-Language:?頭部的內容。例如:“en”。?
$_SERVER['HTTP_CONNECTION']?#當前請求的?Connection:?頭部的內容。例如:“Keep-Alive”。?
$_SERVER['HTTPS']?—?如果通過https訪問,則被設為一個非空的值(on),否則返回off?

$_SERVER['SERVER_SIGNATURE']?#包含服務器版本和虛擬主機名的字符串。?
$_SERVER['PATH_TRANSLATED']?#當前腳本所在文件系統(不是文檔根目錄)的基本路徑。?
$_SERVER['SCRIPT_NAME']?#包含當前腳本的路徑。這在頁面需要指向自己時非常有用。?
$_SERVER['REQUEST_URI']?#訪問此頁面所需的?URI。例如,“/index.html”。?
$_SERVER['PHP_AUTH_USER']?#當?PHP?運行在?Apache?模塊方式下,并且正在使用?HTTP?認證功能,這個變量便是用戶輸入的用戶名。?
$_SERVER['PHP_AUTH_PW']?#當?PHP?運行在?Apache?模塊方式下,并且正在使用?HTTP?認證功能,這個變量便是用戶輸入的密碼。?
$_SERVER['AUTH_TYPE']?#當?PHP?運行在?Apache?模塊方式下,并且正在使用?HTTP?認證功能,這個變量便是認證的類型
?

5, updatexml( ) 和? extractvalue() 都是最多返回 32 位字符

6, Python? ?的? 字符串切片是? ?前包后不包?

意思:?

str = "0123456789"print(str[:5]) # 輸出01234 print(str[5:]) #輸出56789

7,python : 中 try? expect? ?、try ……finally 、try……else語句

try:后面跟著需要執行的語句

except 捕獲異常 并處理異常,通常異常有不同類型,可分別處理

else:當try語句塊正常執行時,無異常產生,執行else語句塊

finally:無論是否有異常產生,均執行

raise: 自定義異常

8,python 中:? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?chr()? : 將 ascii 轉化為 相應的字符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ord() : 將 字符轉化為? ascii

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ascii(): 類似 repr() 函數, 返回一個表示對象的字符串

>>> ascii('runoob') "'runoob'"

? ? ? ?sql 中:? ? ? ? ascii()?:返回字符表達式最左端字符的ASCII 碼值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?char():?將ASCII 碼轉換為字符

?

? ? ? ?php中:? ? ? ? chr()? : 將 ascii 轉化為 相應的字符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ord() : 將 字符轉化為? ascii

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? php中 沒有 ascii()函數

9,sqlmap中 在使用 --tables 無法爆出 的時候? ? 可以用? --common-tables? ?進行爆破?

10,sqlmap 居然還可以進行? 這些操作:

?

? ?把文件上傳到數據庫服務器中

參數:--file-write,--file-dest

? ?運行任意操作系統命令

參數:--os-cmd,--os-shell

11,PHP:

file_get_content() 會將 讀取的文件的內容寫入資格字符串 ,返回值為 字符串 ,讀取失敗時,返回布爾的0

12,PHP:

傳入 數組的方法:

GET:? ?$sd =? ?$_GET['xss']? ? ? ? ?:url?xss['1']=123&xss['2']=456

必須以get里面的 字符為數組名

?

?13,sqlmap 中 指定注入點? ? ?

-p “id,user-agent,x-forwarded-for”? ? ? ? ? ? ?指定具體的參數

--skip? "user-agent"? ? ? ? ? ? ? ? 忽略指定參數

? ?*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?在url中 指定 注入點? (只需要在想要探測的位置加上 *)

14,php中大多數函數都不能處理數組

15,php中? ===? ?比較符? 兩邊不會進行類型變換,所以 null? ?不等于 false

==? 可以進行類型變化 ,null =false

16,php中 strlen() 也不能處理數組, 用 count()測數組長度

17,部分os.path常用:

os.path.abspath(path)?返回path規范化的絕對路徑

os.path.split(path)?將path分割成目錄和文件名二元組返回

os.path.dirname(path)?返回path的目錄,其實就是os.path.split(path)的第一個元素

os.path.basename(path)?返回path最后的文件名

os.path.splitext(path)?分離文件名與擴展名;默認返回(fname, fextension)元組,可做分片操作,以” . “為分隔符。

18,python中 shutil庫? 常用:

shutil 是高級的文件,文件夾,壓縮包處理模塊。

shutil.copyfileobj(fsrc, fdst[, length])?將文件內容拷貝到另一個文件中

import?shutilshutil.copyfileobj(open('old.xml','r'),?open('new.xml',?'w'))

shutil.copyfile(src, dst)? ? ??拷貝文件

shutil.copyfile('f1.log', 'f2.log')

?

線程 、進程 和 協程

?

19,python 中的? enumerate():? 將數組拆分成元組

例如:names =['aa','bb','cc']

a,b = (11,12) 可以拆分元組

20,自定義 Thread類 :? 其中必須要繼承 Thread 類 ,并且必須要有 run方法

21,python,在一個函數中 判斷什么時候該加? global 什么時候不用加global:
?

變量名其實相當于一個指針,當 指針沒有指向新的地方的時候就不用 加 global

例如:上圖中 , 當向數組 nums中 append元素時,指針并沒有指向新的地方,所有加入元素成功

而? 當 合并 nums? 和? num2 時 生成了新的數組,指針指向了新的地方,這里不加global 就會出現錯誤

?

總結: 在一個函數中 對全局變量進行修改時,到底是是否需要使用global進行說明 要看 是否對 全局變量的指向進行了修改,

如果修改了指向,即讓全局變量指向了一個新的地方,那么必須使用 global?

如果只是修改了指向的空間里的數據,就不用使用 global

?

22, python中 線程之間的資源共享(子線程之間共享全局變量)

23,使用線程時,攜帶數據過去 的方法:

args 指定將來調用函數的時候 傳遞什么數據過去? ? 注意必須加? 逗號

?

?

24,PHP中 :

passthru($string):? ? ? ?把字符串$string當成命令執行

在使用 passthru()之前 往往先調用? 以下兩個函數,以確保用戶不會欺騙系統執行任意命令

escapeshellarg()?轉義一個字符串以用作shell參數,在字符串周圍添加單引號,并引用/轉義任何現有的單引號

escapeshellcmd?()?轉義shell元字符,轉義字符串中可能用于欺騙shell命令執行任意命令的任何字符

?

25, python 中 base64? 的調用:

? ? ? ?1 ,? ? ? ?'12345' . encode('base64')

? ? ? ? 2,? ? ? ? ?base64.b64encode($string)

?

26,恢復.swp文件

發現一個 index.php.swp文件

關于swp文件:?
使用vi,經常可以看到swp這個文件。那這個文件是怎么產生的呢,當打開一個文件,vi就會生成這么一個.(filename)swp文件 以備不測(比如非正常退出),如果你正常退出,那么這個這個swp文件將會自動刪除 。

怎么恢復.swp:?
可以使用?
vi -r {your file name}?
來恢復文件,然后用下面的命令刪除swp文件,不然每一次編輯時總是有這個提示。?
rm .{your file name}.swp?

?

27,jpg文件:

文件頭? FF D8 FF E0? ? ? ? ? ?文件尾? FF D9

藍色框內為JFIF段,長度字節流為00 10 = 16,

后面14個字節為內容。4A 46 49 46是JFIF的asci碼。后面10個字節不清楚。直接通過JFIF長度跳過即可。

紅色箭頭開始位置為Exif段頭部的10個字節含義如下

FF E1開始,
16 6F = 24096,約24k的數據,信息量還是相當豐富的,
45 78 69 66 為Exif的asci碼流,
00 00 未使用

Exif正是利用這些信息串記錄拍攝信息如快門速度、光圈值等,甚至可以包括全球定位信息

28,png文件:

文件頭:?89 50 4E 47 0D 0A 1A 0A

數據塊

這里有兩種類型的數據塊,一種是稱為關鍵數據塊(critical chunk),就是必須要有的塊;另一種叫做輔助數據塊(ancillary chunks)。

每個數據塊都由下表所示的的4個域組成。

名稱字節數說明
Length(長度)4字節指定數據塊中數據域的長度,其長度不超過$(2^{31}-1)$字節
Chunk Type Code(數據塊類型碼)4字節數據塊類型碼由ASCII字母(A-Z和a-z)組成
Chunk Data(數據塊實際內容可變長度存儲按照Chunk Type Code指定的數據
CRC(循環冗余檢測4字節存儲用來檢測是否有錯誤的循環冗余碼

其中CRC(cyclic redundancy check)域中的值是對Chunk Type Code域和Chunk Data域中的數據進行計算得到的,可以看做一種校驗碼。

關鍵數據塊

關鍵數據塊中的4個標準數據塊是:

(1) 文件頭數據塊IHDR(header chunk):

文件頭數據塊由13字節,組成結構如下:

域的名稱字節數說明
Width4 bytes圖像寬度,以像素為單位
Height4 bytes圖像高度,以像素為單位
Bit depth1 byte圖像深度:索引彩色圖像:1,2,4或8 ;灰度圖像:1,2,4,8或16 ;真彩色圖像:8或16
ColorType1 byte顏色類型:0:灰度圖像, 1,2,4,8或16;2:真彩色圖像,8或16;3:索引彩色圖像,1,2,4或84:帶α通道數據的灰度圖像,8或16;6:帶α通道數據的真彩色圖像,8或16
Compression method1 byte壓縮方法(LZ77派生算法)
Filter method1 byte濾波器方法
Interlace method1 byte隔行掃描方法:0:非隔行掃描;1: Adam7(由Adam M. Costello開發的7遍隔行掃描方法)

(2) 調色板數據塊PLTE(palette chunk):

(3) 圖像數據塊IDAT(image data chunk):

(4) 圖像結束數據IEND(image trailer chunk):

89 50 4E 47 0D 0A 1A 0A? ? 文件頭

00 00 00 0D? ? 說明IHDR頭塊長為13

49 48 44 52? ? IHDR標識(ascii碼為IHDR)

00 00 03 BD? 圖片的寬?

00 00 02 0F? 圖片的高

08 06 00 00 00? 圖片顏色信息

BF A8 B9 66? ? CRC校驗碼

?

29,gif文件: 文件頭? ? ??47 49 46 38

? ? ? ?RAR ? ? ? ? ? ? ? ? ? ?文件頭:52 61 72 21

30,kali更新源:

leafpad /etc/apt/sources.list

在原來的源前面加 #

將下面的兩個源添加上:保存退出

#阿里云 deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib#中科大kali源 deb https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src https://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

然后執行:

apt-get update (更新列表)apt-get upgrade (更新系統軟件,更新的內容比較多,時間較長,20min左右)apt-get dist-upgrade

31,設置開機啟動

systemctl enable apache2 //開機啟動Apache2

32,linux設置時區(ubuntu)

sudo tzselect然后選擇亞洲Asia,繼續選擇中國China,最后選擇北京Beijing。然后創建時區軟鏈sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime現在看下時間,是不是已經正常了呢。

33,?rar的png類型編碼是rar壓縮指定的png標志,和png的文件頭沒什么關系,只是rar壓縮中對文件的標識

png:A8 3C 74

34,

端口號服務名稱和內容
21FTP 文件傳輸協議的命令端口
22SSH較安全的遠程連接協議
23Telnet 早期的連接服務器軟件
25SMTP 郵件傳輸協議
53?DNS 域名解析服務器
80/8080/3128/8081/9080HTTP 協議代理服務器
110?pop3郵件接受協議
443HTTPS 有加密安全的www服務器
3306MYSQL
3389WIN2003 遠程登錄默認端口
1521Oracke數據庫
1433MYSQL_server
1080QQ
69tFTP
8080TOMCAT
445/139SMP共享服務
67/68dhcp
??
??
??

35,windows啟用管理員:

1,用管理員身份打開cmd ;2,開啟管理員 : net?user?administrator?/active:yes

3, 設置管理員密碼:?net?user?administrator 123123

?

36, 藍牙傳輸協議 : OBEX

?

37,WIFI連接認證的重點在WPA的四次握手包,也就是 eapol 協議的包

tcp 是三次握手,當PSH標志位為1時意味著有數據的傳輸,我們可以通過分組詳情中注意到TCP層下面還有一個Data字段,Data字段就是這個數據包所包含的數據

38, linux 中的字典生成工具? ?crunch (kali自帶)? 用法:https://www.jianshu.com/p/a3401b0f3d9a

?

39,DNS即Domain Name System,域名系統,作為Internet的一個重要組成部分,和常用的協議。DNS采用53端口基于UDP協議,當數據量大時,采用TCP協議。DNS協議的作用是把域名解析到IP地址,或者實現不通域名的跳轉等等。在網絡安全中也常用DNS數據包作為信息的載體,以繞過防火墻等安全設施。

40,DNS協議查詢和應答字段往往會傳輸大量的數據,所以可以用于隱藏數據。在常見的CTF和網絡安全的實際應用中,往往會出現DNS夾雜數據的情況出現。

41,FTP即File Transfer Protocol,文件傳輸協議。常用與互聯網上對文件的操作,方便用戶上傳與下載,并對服務器的文件進行操作。用戶通過一個支持FTP協議的客戶端程序,連接到在遠程主機上的FTP服務器。通過客戶端程序向服務端發出命令,服務端執行用戶所發出的命令,并將執行的結果返回到客戶端。

?

42,volatility 的一些操作:

1,使用imageinfo插件獲取到基本信息,特別是內存數據是什么操作系統下生成的

volatility -f easy_dump.img imageinfo

2,查看進程列表:

volatility -f easy_dump.img --profile=Win7SP1x64 pslist

3,提取某個進程為文件

volatility -f easy_dump.img --profile=Win7SP1x64 memdump -p 表中的PID值 -D ./

4,列舉緩存在內存的注冊表 :

volatility -f easy_dump.img --profile=Win7SP1x64 hivelist

5,hivedump 打印出注冊表中的數據 :

volatility -f easy_dump.img --profile=Win7SP1x64 hivedump -o 表中Virtual地址

6,獲取SAM表中的用戶 :

volatility -f easy_dump.img --profile=Win7SP1x64 printkey -K “SAM\Domains\Account\Users\Names”

7,獲取最后登錄系統的賬戶 :

volatility -f easy_dump.img --profile=Win7SP1x64 printkey -K “SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”

8,提取內存中保留的 cmd 命令使用情況 。

volatility -f easy_dump.img --profile=Win7SP1x64 cmdline volatility -f easy_dump.img --profile=Win7SP1x64 cmdscan

9,獲取到當時的網絡連接情況 。

volatility -f easy_dump.img --profile=Win7SP1x64 netscan

10,獲取 IE 瀏覽器的使用情況。?

volatility -f easy_dump.img --profile=Win7SP1x64 iehistory

11, 獲取內存中的系統密碼,我們可以使用 hashdump 將它提取出來 。

?

volatility -f easy_dump.img --profile=Win7SP1x64 hashdump -y (注冊表 system 的 virtual 地址 )-s (SAM 的 virtual 地址)

12,文件掃描:

volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep "doc\|docx\|rtf" volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep "png\|pdf\|jpeg\|jpg\|gif\|bmp" volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep "Desktop"

13,查看截圖:

volatility -f easy_dump.img --profile=Win7SP1x64 screenshot --dump-dir=./

14,查看tcp連接:tcp連接池掃描:
?

volatility -f easy_dump.img --profile=Win7SP1x64 connscan

43,在解密RSA 中:

N = n = q * p

r = (q-1)(p-1)

d =( pq + 1 )/e

公鑰: (N,e)

私鑰: (N,d)

44,異或運算:(XOR ,^,)

23? ^ 11 = 28

7 ^ 11 = 12

2 ^ 3 = 1

其實 是將 十進制 轉為 二進制? 然后 對齊 進行 異或運算(同為 0,異為 1)

45,openssl 對rsa的加密解密操作:

RSA PEM文件格式

1.PEM私鑰格式文件

-----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

2. PEM公鑰格式文件

-----BEGIN PUBLIC KEY----- -----END PUBLIC KEY-----

3. PEM RSAPublicKey公鑰格式文件

-----BEGIN RSA PUBLIC KEY----- -----END RSA PUBLIC KEY-----

OpenSSL密鑰相關命令

?

1,生成一個私鑰。后面的1024是生成密鑰的長度。

openssl genrsa -out rsa_private_key.pem 1024

2,生成私鑰對應的公鑰:

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

-in指定輸入文件,-out指定提取生成公鑰的文件名。至此,我們手上就有了一個公鑰,一個私鑰,現在可以將用公鑰來加密文件了。

利用此前生成的公鑰加密文件?

openssl rsautl -encrypt -in hello -inkey rsa_public_key.pem -pubin -out hello.en

-in指定要加密的文件,-inkey指定密鑰,-pubin表明是用純公鑰文件加密,-out為加密后的文件。

3,解密文件:

openssl rsautl -decrypt -in flag.enc -inkey rsa_private_key.pem

-in指定被加密的文件,-inkey指定私鑰文件,-out為解密后的文件。

?

4,提取 公鑰 pubkey.pem 中的 參數:

openssl rsa -pubin -text -modulus -in warmup -in pubkey.pem

46,?

.php.bak

是在編輯這個文件時,自動生成的備份文件

如果編輯后沒有什么問題,可以刪除.BAK文件。

47 .git文件泄露的原理

git相當于是一個用于儲存網站項目源碼的倉庫

用 git命令可以管理 git這個倉庫

例如:

git init命令初始化一個空的Git 倉庫

git status命令可以查看倉庫狀態,列出當前目錄所有還沒有被git管理追蹤的文件和被git管理且被修改但還未提交更新的文件.

git commit提交更新到倉庫

.git目錄

在我們使用git init初始化git倉庫的時候,會生成一個.git的隱藏目錄,git會將所有的文件,目錄,提交等轉化為git對象,壓縮存儲在這個文件夾當中。

?

  • COMMIT_EDITMSG:保存最新的commit message,Git系統不會用到這個文件,只是給用戶一個參考
  • config:這個是GIt倉庫的配置文件
  • description:倉庫的描述信息,主要給gitweb等git托管系統使用
  • HEAD:這個文件包含了一個檔期分支(branch)的引用,通過這個文件Git可以得到下一次commit的parent
  • hooks:這個目錄存放一些shell腳本,可以設置特定的git命令后觸發相應的腳本;在搭建gitweb系統或其他
    git托管系統會經常用到hook script
  • index:這個文件就是我們前面提到的暫存區(stage),是一個二進制文件
  • info:包含倉庫的一些信息
  • logs:保存所有更新的引用記錄
  • objects:所有的Git對象都會存放在這個目錄中,對象的SHA1哈希值的前兩位是文件夾名稱,后38位作為對象文件名
  • refs:這個目錄一般包括三個子文件夾,heads、remotes和tags,heads中的文件標識了項目中的各個分支指向的當前commit
  • ORIG_HEAD:HEAD指針的前一個狀態

48,.DS_Store文件

.DS_Store是一種由蘋果公司的Mac OS X操作系統所創造的隱藏文件,目的在于存貯目錄的自定義屬性

例如文件們的圖標位置或者是背景色的選擇。[2]該文件由Finder創建并維護,類似于Microsoft Windows中的desktop.ini文件

Mac OS X的Finder程序會在進行存取的每個目錄下創建.DS_Store文件,甚至是在遠程系統上的目錄(例如通過SMB連接或者蘋果文件協議連接來共享的目錄),并且甚至如果用戶僅僅通過移動該目錄的Finder窗口自定義了其顯示

49,mysql 中遇到的問題:

問題一:

在腳本中連接數據庫時蹦出來的問題:

mysqli_connect(): (HY000/1698): Access denied for user 'root'@'localhost'

解決辦法:

mysql -u rootuse mysql;update user set plugin='mysql_native_password' where user='root';flush privileges;exitservice mysql restart

然后執行:

mysql -u root -p

輸入密碼,如果登不進去了,去修改密碼

mysql -u rootupdate mysql.user set authentication_string=password('root') where host='localhost' and user='root';flush privileges;

應該就可以了

問題二:

創建 新用戶并 賦予新用戶 所有權限后? 在用新用戶登錄后,創建數據庫時出現:新用戶不能創建數據庫

create database sd;ERROR 1044 (42000): Access denied for user 'luohao'@'%' to database 'sd'

解決辦法:(應該是權限賦予的不對,重新賦予新用戶權限)

mysql -u root -p輸入密碼mysql> grant all on *.*-> to luohao identified by 'root'-> with grant option;flush privileges;exitservice mysql restart

50,命令執行漏洞

涉及到的函數:PHP中的? system()exec()eval()shell_exec()passthru()、assert()等函數

函數功能:

system():

system?(?string?$command?[,?int?&$return_var?] ) :?string

操作系統?—?執行外部程序并顯示輸出

exec():

exec (字符串 $command [,數組 &$output [, int &$return_var ]]):字符串

exec()執行給定的?command。EXEC?-?執行外部程序

?

passthru():

passthru (字符串 $command [, int &$return_var ]): void

函數是類似于?EXEC()的功能,它執行?command。當Unix命令的輸出是二進制數據且需要直接傳遞回瀏覽器時,應使用此函數代替exec()或?system()。這樣做的常見用法是執行類似pbmplus實用程序的程序,該程序可以直接輸出圖像流。通過將Content-type設置為image / gif,然后調用pbmplus程序輸出gif,可以創建直接輸出圖像的PHP腳本,沒有返回值

shell_exec():

shell_exec?(字符串?$cmd?):字符串

shell_exec?—?通過外殼執行命令并以字符串形式返回完整的輸出

?assert():

assert?(?mixed?$assertion?[,?Throwable?$exception?] ) :?bool

assert()?會檢查指定的?assertion?并在結果為?FALSE?時采取適當的行動。

如果?assertion?是字符串,它將會被?assert()?當做 PHP 代碼來執行。?assertion?是字符串的優勢是當禁用斷言時它的開銷會更小,并且在斷言失敗時消息會包含?assertion?表達式。 這意味著如果你傳入了 boolean 的條件作為?assertion,這個條件將不會顯示為斷言函數的參數;在調用你定義的?assert_options()?處理函數時,條件會轉換為字符串,而布爾值?FALSE?會被轉換成空字符串。? assert_options()函數是assert()的約束版本

assert_options(ASSERT_ACTIVE,?1);? 將ASSERT_ACTIVE置1,即打開 assert()功能

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的《随笔 二》的全部內容,希望文章能夠幫你解決所遇到的問題。

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