威尼斯正規官網 > 推理 > 所以當invalidate以后再新建session,我在05年的冬天調任到了中俄邊境的一個事務所

推理

所以當invalidate以后再新建session,我在05年的冬天調任到了中俄邊境的一個事務所

猶豫了一秒之后,我還是打開了知乎。

文、 ?君薄宴

1 會話標識未更新?
1.1 原因?
在用戶進入登錄頁面,但還未登錄時,就已經產生了一個session,用戶輸入信息,登錄以后,session的id不會改變,也就是說還是以前的那個session(事實上session也確實不會改變,因為沒有建立新session,原來的session也沒有被銷毀)。?
很多人只是讓會話invalidate沒有用(request.getSession().invalidate();),是因為invalidate方法不是真正的將session銷毀,只是將session中的內容清空,所以當invalidate以后再新建session,新建的session其實不是新的,是將之前的session重新啟用了。于是session的id不變就不奇怪了。只有cookie失效掉,才能換成新的session id?
1.2 解決?
在登錄頁面上加上一段代碼:?


01

request.getSession().invalidate() ;         //清空session 

if (request.getCookies()!=null) { 
   Cookie cookie = request.getCookies()[0];     // 獲取cookie 
   cookie.setMaxAge(0);                    // 讓cookie過期 
} 

這篇邀請我回答的問題叫:如何看待午夜殺人魔。

我在05年的冬天調任到了中俄邊境的一個事務所,這個事務所跟大使館大概有三個小時的車程。說實在的從南方直接調任到北方的感覺不亞于給剛從被窩里醒來澆上桶冰涼的水。

注:會話失效后,請不要在代碼前面使用SESSION保存數據。?
2 SQL注入?
2.1 原因?

我在犯罪心理、懸疑、推理等話題下回答了上百個問題,所以邀請我回答的有幾十個人。

就在這個寒冷的冬天里,原來老舊事務所的領導笑瞇瞇的對我說:“小秦同志,在這里待的習慣吧,今年冬天事情比較多,人手緊缺所以你就去東北干干吧。”

  1. 沒有正確過濾轉義字符??
    在用戶的輸入沒有為轉義字符過濾時,就會發生這種形式的注入式攻擊,它會被傳遞給一個SQL語句。這樣就會導致應用程序的終端用戶對數據庫上的語句實施操縱。比方說,下面的這行代碼就會演示這種漏洞:?

    statement := "SELECT * FROM users WHERE name = '" + userName + "'; "

我笑了笑,打開電腦,開始進行答案的編輯。

嗯,那就去吧。但當我看到目的地的時候嘆了口氣 ,哪里是調任,分明就是發配。環境艱苦,任務量大,這就是我新工作地點的全部概括。

將用戶名變量(即username)設置為:a' or 't'='t,此時原始語句發生了變化.?


我的一個下屬給我發的一大串短信我看都沒看,無非是偷偷告訴我誰頂替了我的位置,那人是boss的親戚之類云云,順便再總結全體事務所老舊員工們對我的道別。大家都心照不宣的事情這蠢丫頭卻點明了跟我說,笨蛋。

  1. 用戶輸入錯誤的數據類型?
    如果一個用戶提供的字段并非一個強類型,或者沒有實施類型強制,就會發生這種形式的攻擊。當在一個SQL語句中使用一個數字字段時,如果程序員沒有檢查用戶輸入的合法性(是否為數字型)就會發生這種攻擊。例如:?
    statement := "SELECT * FROM data WHERE id = " + a_variable + "; "?
    從這個語句可以看出,作者希望a_variable是一個與“id”字段有關的數字。不過,如果終端用戶選擇一個字符串,就繞過了對轉義字符的需要。例如,將a_variable設置為:1; DROP TABLE users,它會將“users”表從數據庫中刪除,SQL語句變成:?

    SELECT * FROM DATA WHERE id = 1; DROP TABLE users;

謝邀。

說起這個“特殊事務所”,它的來頭可能要追溯到很早很早以前,有多早便無從考究了。但建國期間,是事務所鼎盛期間,在不同城市會有不同人員鎮守事務所,有非人之禍時,就有非常人之人解決。

  1. 數據庫服務器中的漏洞?
    有時,數據庫服務器軟件中也存在著漏洞,如MYSQL服務器中mysql_real_escape_string()函數漏洞。這種漏洞允許一個攻擊者根據錯誤的統一字符編碼執行一次成功的SQL注入式攻擊。?
  2. 盲目SQL注入式攻擊?
    當一個Web應用程序易于遭受攻擊而其結果對攻擊者卻不見時,就會發生所謂的盲目SQL注入式攻擊。有漏洞的網頁可能并不會顯示數據,而是根據注入到合法語句中的邏輯語句的結果顯示不同的內容。這種攻擊相當耗時,因為必須為每一個獲得的字節而精心構造一個新的語句。但是一旦漏洞的位置和目標信息的位置被確立以后,一種稱為Absinthe的工具就可以使這種攻擊自動化。?
  3. 條件響應?
    注意,有一種SQL注入迫使數據庫在一個普通的應用程序屏幕上計算一個邏輯語句的值:?

    SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=1

午夜殺人魔,這個名字首次出現是在10月12日的都市晚報《本市驚現午夜殺人魔》一文。

目前事務所的接班人是一個表面道骨仙風,骨子里吊兒郎當的老道士,他叫魏鶴,同樣也是我的師父。與我同門的弟子還有一個叫林柏,也就是我現在的boss。

這會導致一個標準的面面,而語句?
SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=2?
在頁面易于受到SQL注入式攻擊時,它有可能給出一個不同的結果。如此這般的一次注入將會證明盲目的SQL注入是可能的,它會使攻擊者根據另外一個表中的某字段內容設計可以評判真偽的語句。?

下面我來簡短介紹一下背景:

林柏生來就有一雙通向未來的眼睛,他能看透未來很多事情,但想要去改變,便是違了天命。所以林柏就用這招告訴我他以后會成為我的老板,并且不可違背,然后便非常不要臉的當上了boss。

  1. 條件性差錯?
    如果WHERE語句為真,這種類型的盲目SQL注入會迫使數據庫評判一個引起錯誤的語句,從而導致一個SQL錯誤。

至于我,和他的能力恰恰相反,我可以伸手觸摸到過去,看到那些隱藏在黑暗中不為人知的秘密。

例如:?

10月10號凌晨四點,本市郊區一位環衛工人在公園花壇內發現一具尸體。

我提著自己的行李箱下了火車,兩天的火車路程讓我覺得腳下的土地在不停地晃動。不行,下次一定要跟林大boss申請下經費,下次再出這么遠的門,大爺我要坐飛機!

SELECT 1/0 FROM users WHERE username='Ralph'

死者年齡40歲左右,被發現時身著紅色長裙,兩只腳均被兇手殘忍切斷,并拋于尸體旁邊,死因是頸部動脈被割斷,大量出血,發現時已死亡將近四個小時。

剛剛下火車,不巧正是深夜,站臺上人很少,燈光昏黃,打得整個站臺明明暗暗。雪才剛剛下不久,在地上鋪的薄薄一層,被路燈染成了暖橘色,幾串腳印零星,呼出的霧氣在我眼鏡上起了一層模模糊糊的霧氣。

顯然,如果用戶Ralph存在的話,被零除將導致錯誤。?

從警方公開的信息中,我們可以知道,死者血液中存在迷藥殘留,并且在嘴邊檢測出乙醚痕跡,再加上尸體所在地無任何掙扎跡象,且血跡遠遠少于死者出血量,故可以判定,發現尸體的地方并不是第一案發現場。

我看著空蕩蕩的街道嘆了口氣,老林啊,我就知道每次你對我慈祥的微笑時我就該上路了,這么冷的天怎么連個接我的都沒有。

  1. 時間延誤?
    時間延誤是一種盲目的SQL注入,根據所注入的邏輯,它可以導致SQL引擎執行一個長隊列或者是一個時間延誤語句。攻擊者可以衡量頁面加載的時間,從而決定所注入的語句是否為真。?
    2.2 解決?
  2. 用預編譯處理語言?
    要防御SQL注入,用戶的輸入就絕對不能直接被嵌入到SQL語句中。恰恰相反,用戶的輸入必須進行過濾,或者使用參數化的語句。參數化的語句使用參數而不是將用戶輸入嵌入到語句中。在多數情況中,SQL語句就得以修正。然后,用戶輸入就被限于一個參數。下面是一個使用Java和JDBC API例子:?

    PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE PASSWORD=?");

    prep.setString(1, pwd);

而為什么將其稱為午夜殺人魔呢?

正想著,遠處就見一道車光漸漸接近,我往前走了兩步,大半夜來車站的人大概就只剩下歹徒跟接我的人了,銀灰色的車停在了車站門前。

總體上講,有兩種方法可以保證應用程序不易受到SQL注入的攻擊,一是使用代碼復查,二是強迫使用參數化語句的。強迫使用參數化的語句意味著嵌入用戶輸入的SQL語句在運行時將被拒絕。?

因為在接下來的每一天早上,在公園附近一公里范圍內,均發現了身穿紅色衣物的女性尸體,而死狀與年齡等信息,與前文提及的第一名死者,一般無二。

我出了那個荒涼的車站大門才知道為什么這里的車站門口沒有排著隊接人的私家車和成堆的出租了,因為車站之外,雪深數尺,沒有任何的霓虹閃爍,大廈高樓,連村莊都遙遠的像在遠處閃爍的星星。

  1. 軌范出錯處理?
    防范SQL注入,還要避免出現一些詳細的錯誤消息,因為黑客們可以利用這些消息。要使用一種標準的輸入確認機制來驗證所有的輸入數據的長度、類型、語句、企業規則等。?
  2. 使用專業的漏洞掃描工具?
    但防御SQL注入攻擊也是不夠的。攻擊者們目前正在自動搜索攻擊目標并實施攻擊。其技術甚至可以輕易地被應用于其它的Web架構中的漏洞。企業應當投資于一些專業的漏洞掃描工具,如大名鼎鼎的Acunetix的Web漏洞掃描程序等。一個完善的漏洞掃描程序不同于網絡掃描程序,它專門查找網站上的SQL注入式漏洞。最新的漏洞掃描程序可以查找最新發現的漏洞。?

也就是說,兇手從10月10日開始,直到今天早上,已經殺害了至少6名女性。

我默默地給林柏記了一筆,雖是發配,好歹他還記得我不喜歡人多的地方。

3 XSS跨站腳本編制?
3.1 原因?
它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意用戶的特殊目的。XSS屬于被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。?
3.2 解決?
在防止這類問題時,輸入內容的轉義效果遠比內容過濾要好。?
具體實施可以增加一個request的轉碼過濾器。代碼:?


正想著,一輛銀色的車停在了我面前。“小秦,上車吧。”司機是個年過四十的大哥,我看了看眼前這位外表有些憨厚的大哥問道:“大哥貴姓,您怎么認得我?”

package com.apusic.portal.sso; 
import java.io.IOException; 
import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.*; 
import java.util.*; 
/** 
* Servlet Filter implementation class SqlEscapeFilter 
*/ 
public class SqlEscapeFilter implements Filter { 
    /** 
     * Default constructor. 
     */ 
    public SqlEscapeFilter() { 
        // TODO Auto-generated constructor stub 
    } 
    /** 
     * @see Filter#destroy() 
     */ 
    public void destroy() { 
        // TODO Auto-generated method stub 
    } 
    /** 
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) 
     */ 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
        // TODO Auto-generated method stub 
        // place your code here 
        HttpServletRequest hreq = (HttpServletRequest)request; 
        Map map = hreq.getParameterMap(); 
        Iterator itr = map.keySet().iterator(); 
        while( itr.hasNext() ) 
        { 
            String key = itr.next().toString(); 
            String [] values = hreq.getParameterValues(key); 
            if( values != null ) 
            { 
                for( int i = 0; i < values.length; i++ ) 
                { 
                    values[i] = cleanXSS(values[i]); 
                } 
            } 
            hreq.setAttribute(key, values); 
        } 
        // pass the request along the filter chain 
        chain.doFilter(request, response); 
    } 
    /** 
     * @see Filter#init(FilterConfig) 
     */ 
    public void init(FilterConfig fConfig) throws ServletException { 
        // TODO Auto-generated method stub 
    } 
    private String cleanXSS(String value) 
    { 
        value = value.replaceAll("<", "& lt;").replaceAll(">", "& gt;"); 
        value = value.replaceAll("\(", "& #40;").replaceAll("\)", "&#41;"); 
        value = value.replaceAll("'", "& #39;"); 
        value = value.replaceAll("eval\((.*)\)", ""); 
        value = value.replaceAll("[\"\'][\s]*javascript:(.*)[\"\']", """"); 
        value = value.replaceAll("script", ""); 
        return value; 
    } 
} 

接下來我將從犯罪心理和現場證據兩方面對兇手進行側寫。

那人搓了搓帶著厚手套的手咧嘴一笑說道:“林所長給我們每個人下發了你的文件,有照片,要我們務必保證你的安全,對了,我姓齊,單名一個里,是所里的專職司機。”

配置應用中的web.xml?
Web.xml:?

劃重點:以下皆為我個人觀點。

我一邊聽一邊把行李都扔了上去,“難得老林有這樣的心思。”我上了副駕駛,關上車門說道:“怎么,還有文件?”

<filter> 
     <display-name>SqlEscapeFilter</display-name> 
     <filter-name>SqlEscapeFilter</filter-name> 
     <filter-class>com.apusic.portal.sso.SqlEscapeFilter</filter-class> 
</filter> 
<filter-mapping> 
     <filter-name>SqlEscapeFilter</filter-name> 
     <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 

既然是一名連環殺手,我們首先要研究兇手獨特的“簽名”。

齊里撓了撓頭說:“看我這記性,林所長說您以后就是我們所的所長了。暫時接手。”

4 XSRF跨站請求偽造?
4.1 原因?
CSRF利用方式比較類似XSS(跨站腳本 Cross Site Scripting) ,不過不同的是CSRF是構造一個提交來讓其他人訪問后,利用站點對這些人的信任來進行一些所期望的操作.?
比如:A和B在同一個有XSS漏洞的站點C,B登錄過D站點,并且有這個D站點的Cookies,這時候如果A構造一個CSRF,內容為給 A在D站點的賬戶轉移一些虛擬幣,如果這時候在C站點瀏覽的B用戶打開了A構造的含有CSRF的頁面,這時候B的D站點用戶會因為對B用戶的信任而進行給 A轉賬的操作.?
4.2 解決?
此類攻擊的情景相對的比較復雜,具體解決可以參考以下5點:?
第一:限制驗證cookie的到期時間。這些cookie的合法時間越短,黑客利用你的Web應用程序的機會就越小。不過,這個時間越短,用戶就越不方便。因此,你需要在安全性和方便性之間進行平衡。?
第二:執行重要業務之前,要求用戶提交額外的信息。要求用戶在進行重要業務前輸入口令,這可以防止黑客發動CSRF攻擊(只要瀏覽器中沒有包含口令),因為這種重要信息無法預測或輕易獲得。?
第三:使用秘密的無法預測的驗證符號。當保存在用戶瀏覽器中的cookie僅由一次會話確認時,CSRF攻擊才會有效。所以在每次HTTP請求(當然攻擊者無法提前知道)中都有附加的特定會話的信息,這樣就可以挫敗CSRF攻擊。不過,如果這種應用程序存在跨站腳本漏洞,黑客就有可能訪問這種驗證符號。?
第四:使用定制的HTTP報頭。如果執行交易的所有請求都使用XMLHttpRequest并附加一個定制的HTTP報頭,同時拒絕缺少定制報頭的任何請求,就可以用XMLHttpRequest API來防御CSRF攻擊。由于瀏覽器通常僅準許站點將定制的HTTP報頭發送給相同站點,從而了防止由CSRF攻擊的源站點所發起的交易。?
第五:檢查訪問源的報頭。在瀏覽者發送HTTP請求時,它通常會包含源自訪問源報頭的URL。理論上講,你可以使用這些信息來阻止源自其它任何站點(而不是來自Web應用程序自身)的請求。?

“午夜殺人魔”的“簽名”是什么?沒錯,就是砍斷死者的雙腳這一行為。

我暗自嘆了口氣,閉了眼睛打算瞇一會。沒人知道,我跟林柏有個約定,如果有非常重要的事情他無法處理,那么他就會把所長的位置給我,我只當他是說笑,可今天我沒由來的心生寒意,想起當時的那個玩笑話。

綜合公司以往平臺報出此類漏洞產出的原因,基本上都可以通過以下簡單做法加以解決:?
在請求后面加上一次性令牌。如驗證碼,手機短信驗證,或者sessionID等。?
5 登錄錯誤消息憑證枚舉(不充分帳戶封鎖)?
5.1 原因?
當試圖利用不正確的憑證來登錄時,當用戶輸入無效的用戶名和無效的密碼時,應用程序會分別生成不同的錯誤消息。通過利用該行為攻擊者可以通過反復試驗,加暴力破解來發現應用程序的有效用戶名、再繼續嘗試發現相關聯的密碼。?
5.2 解決?
不論用戶名或密碼出現問題都提示同樣的錯誤,且同時加上登陸失敗次數達到規定次數,則執行帳戶鎖定功能。?
6 HTML注釋敏感信息泄露?
6.1 原因?
頁面源代碼不正確的注釋方式。?
6.2 解決?
將html中有關密碼之類的敏感注釋去掉或者用<%-- -%>隱式注釋。?
7 應用程序錯誤?
7.1 原因?
未執行驗證,可能輸入參數數據類型不匹配。?
7.2 解決?
實行嚴格的數據類型驗證。?
8 已解密的登錄請求?
8.1 原因?
AppScan 的推理是“AppScan 識別了不是通過SSL 發送的密碼參數。?
8.2 解決?
第一:采用基于SSL的HTTPS傳輸協議?
第二:對敏感信息加密并繞過掃描(只要不是采用SSL安全認證即使加密了但是AppScan還是會掃描出來)? ? ??

兇手無論是在挑選受害人,還是在犯罪手法上都有鮮明的個人特點,且6名受害人形象單一,這就證明兇手絕不是一般瘋狂的反社會型人格障礙類罪犯,他有自己的指向性。那么我們可以推斷出,兇手砍斷雙腳這種行為也一定有自己的含義。

車上的暖氣使我手腳的寒意漸漸褪去,我閉眼淺眠,兩天的火車行程讓我的頭如遭重擊,也不再想這些事情。

 <input type="text" id="password1"  style="width:195px; height:25px; line-height:25px;border: solid 1px #89B4D6;color:#999" value="10086密碼" onfocus="javascript:clearPass();"  onkeyup="this.value=this.value.replace(/./g,'*');" onkeypress="javascript:hiddenPass()"/> 
     <input id="password" type="hidden" name="password"  class="inputs_dl" value="" /> 
將type為password的改為text,然后用JS做一個假的密碼輸入框,AppScan會掃描type為password的控件。 
   function hiddenPass(){ 
        var pass = document.getElementById("password1"); 
    var j_pass = document.getElementById("password"); 
      if(event.keyCode==13){ 
      check(); 
      } 
       var keycode=event.keyCode;                 
        var keychar=String.fromCharCode(keycode); 
      j_pass.value=j_pass.value+keychar; 
      j_pass.value=j_pass.value.substring(0,pass.length);    
  } 

   function clearPass(){ 
       $("#password1").val(""); 
       $("#password").val(""); 
  } 

這一點點到為止,我們接下來再來說說被害人。

齊里的車開得很穩當,半路上看出來我的疲憊也就沒說話,車子慢慢地在雪地里行駛。就在這時,我的耳朵里傳來一陣悠悠揚揚的歌聲,說是歌聲,不如說像是哀樂。

然后傳輸密碼的時候加個密:?


我睜開了眼睛有些疑惑的問道:“齊大哥,你聽到哀樂了嗎?”齊里沒有轉頭笑了笑說:“秦所長第一次來這所以有所不知,這聲音可有好幾年了。你仔細聽聽是不是像是一個女人唱的?”

password = base64encode(password); 

被害人的工作大不相同,從第一被害人的護士工作,再到后來的售貨員,公交車售票員等等,并未有任何關聯,但有一個共同點,就是都是工作結束較晚且均為服務行業。

仔細一聽確實像一個女人的哭嚎聲,幽怨揚長,仿佛是來自某個女鬼的呼喚。

9 啟用了不安全的HTTP方法?
9.1 原因?
除標準的GET與POST方法外,HTTP請求還使用其他各種方法。許多這類方法主要用于完成不常見與特殊的任務。如果低權限用戶可以訪問這些方法,他們就能夠以此向應用程序實施有效攻擊。以下是一些值得注意的方法:
PUT,向指定的目錄上傳附加文件;?
DELETE,刪除指定的資源;?
COPY,將指定的資源復制到Destination消息頭指定的位置;?
MOVE,將指定的資源移動到Destination消息頭指定的位置;?
SEARCH,在一個目錄路徑中搜索資源。?
PROPFIND,獲取與指定資源有關的信息,如作者、大小與內容類型。?
TRACE,在響應中返回服務器收到的原始請求。可以使用這種方法避開阻止跨站點腳本的防御?
9.2 解決?
如何禁止DELETE、PUT、OPTIONS、TRACE、HEAD等協議訪問應用程序應用程序呢??
解決方法?
第一步:修改應用程序的web.xml文件的協議?

有一點不得不提,上文中提及法醫在第一被害人嘴邊發現乙醚痕跡,但是在之后的被害人尸體上并未發現,只有血液當中的迷藥成分是每一位被害人身上都能發現的。

齊里瞇了瞇眼睛,一副中年大哥嚇小孩的樣子,我撇撇嘴問道:“然后呢?我可對鬼故事沒感覺。”

1.    <?xml version="1.0" encoding="UTF-8"?> 
2.    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
3.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4.    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
5.    version="2.4"> 

這說明什么?

“所長說笑了,我哪敢嚇您啊!前面三里地有個村子,村里原來有一個大家族,可是不知怎么,先是男主人死去,然后孩子們一個一個死去,到最后啊,家里就只剩下一個女人了,精神狀態也不太好,整天都是這樣哭哭啼啼的。”

第二步:在應用程序的web.xml中添加如下的代碼即可?

說明兇手在犯罪手法上面保持重點的同時,有了進步。

我點了點頭,行吧,這樣悲慘的故事還是不要多聽為好,我換了個姿勢,繼續睡覺。但女人的哭聲一直縈繞在耳邊,漸漸我的意識便模糊起來,腦海中一直在回蕩著女人的哭聲,仿佛她還在低聲吟唱著什么。

1.    <security-constraint> 
2.    <web-resource-collection> 
3.    <url-pattern>/*</url-pattern> 
4.    <http-method>PUT</http-method> 
5.    <http-method>DELETE</http-method> 
6.    <http-method>HEAD</http-method> 
7.    <http-method>OPTIONS</http-method> 
8.    <http-method>TRACE</http-method> 
9.    </web-resource-collection> 
10.    <auth-constraint> 
11.    </auth-constraint> 
12.    </security-constraint> 
13.    <login-config> 
14.    <auth-method>BASIC</auth-method> 
15.    </login-config> 

一般連環殺手的第一次犯罪均為沖動犯罪,缺乏計劃性,而之后的犯罪行為是兇手在第一次犯罪中滿足了心中某種欲望而進行的延續,這可以解釋為何兇手第一次在使用迷藥的同時也使用了乙醚,而后面則只需迷藥即可完成犯罪這一行為轉變。

“公無渡河,公竟渡河,渡河而死,其公奈何。”

10 禁止頁面緩存?
10.1 原因?
能夠訪問到緩存的脫機數據導致泄密。?
10.2 解決?
建議在web管理后臺程序的過濾器里增加如下代碼:? ?

也就是說兇手應該是首次作案,并沒經驗。

02

 response.setHeader("Cache-Control", "no-cache"); //只是請求或響應消息不緩存 
  response.setHeader("Cache-Control", "no-store"); //在請求消息中發送將使得請求和響應消息都不使用緩存                                                                                            
response.setDateHeader("Expires", 0); //緩存距離過期的時間為0毫秒,即緩存立即過期 
  response.setHeader("Pragma", "no-cache"); //頁面不緩存 

剛到事務所里的第二天,我就接到了一起殺人案。我看著眼前雙腿發軟的中年人驀然無語,兇殺找警察啊,找我做什么?可是顧客就是上帝,我耐心的問他,“大叔,怎么不找警察呢?”

11 數據庫錯誤模式?
11.1 原因?
主要是一些數據連接錯誤信息,通過提交特殊構造的字符,程序會暴露一些數據庫信息,也容易引起SQL注入攻擊。?
現有平臺發現的例子:?

下面我們說一下監控問題。

大叔愣了一下,看了看我說:“小伙子,你新來的吧。”

<html><head><title>Apache Tomcat/5.5.28 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException: org.hibernate.HibernateException: java.sql.SQLException: ORA-12899: value too large for column &quot;QCSMS&quot;.&quot;T_SYS_LOGON_LOG&quot;.&quot;USER_CODE&quot; (actual: 24, maximum: 20) 

看到很多知友提到為什么不看監控,這里解釋一下。

我噎了一下,齊里在我身后默默地說:“所長不好意思哈,忘了跟你說,這幾年村子里這樣的案子特別多,沒法給警察,都是咱們處理的。上個所長蘇敏就是因為這個案子才負傷休養的。”

?

尸體所在的公園建成于90年代,周遭均為老舊居民區,安全設備并未安裝到位,也就是說公園周圍沒有足夠的監控設備。

我咂了咂嘴,這該死的林柏什么情況都沒給我說清楚,這哪是什么流放啊,明明就是抓壯丁來的,八成這事情不好解決。大叔看著我思考了一會兒,說:“所長啊,至于為什么不先報警,您來親自看看吧。”

公園周圍監控不多,存在死角,所以沒有拍到兇手拋尸的過程,并且根據調取較遠地區的監控,在幾名死者死亡到發現的這幾個小時內,以公園為圓心的1公里范圍內均無外界車輛進出,所以基本可以排除是兇手特意開到遠處拋尸的可能性,警方初步將兇手鎖定在公園附近的居民區內。

我點了點頭招呼齊里去開車。說起蘇敏,她也算不上個老人,她是上年林柏去俄羅斯旅行帶回來的,蘇敏是個華裔,從小長在俄羅斯,她有一雙能看得清非人之物的眼睛,半吊子的孤魂野鬼她也能對付。

不過居民區人員復雜,住戶眾多,想要徹底排查難度極大,所以走訪調查工作進行緩慢。

一般人蘇敏都不在乎,但這次離職,我大概都能想到蘇敏鼻涕一把淚一把的樣子,八成是她真的應付不了了。


車開到一個偏僻的小村子,我從車里下來,站在冷硬的土地上。遠遠就看見一個被圍起來的地方,跟前站著零星的幾個警察,齊里和那個幾個警察說了些什么,警察看了一眼后都搖了搖頭快速地走開了。

咱們回過頭來說說兇手“砍腳”這一“簽名”。

我走上前去,往現場跟前走了幾步還沒看到尸體就覺得一股寒意鋪面而來,這,不是屬于人類的氣息。我瞇了瞇眼睛,回頭環顧四周,遠遠地,看到一個老婦人雙眼渾濁,那雙眼睛在死死地盯著我看,讓人好不自在。

之前已經證明這一行為是有其含義所在,那么究竟有何意義呢?

不過我很確定,這里都是真正的人。可能是不太適應,我又打了個冷戰。又往前走了三步我猛地停住,我終于知道為什么說這事警察解決不了了,于是掏出手機打給蘇敏,幾聲“嘟”之后,電話里傳來一個溫柔的女聲,“秦所長。”

我先說明我的側寫。

“蘇敏,雖然你離職了,但我需要回來協助。”

兇手必定腿部殘疾,并且多半是天生殘廢。幼兒時期應該遭受過家庭劇變,應該是父親出走或是離世,由母親撫養成人。

一個十七八歲的少年倒在血泊中,勃頸處有模糊的咬痕,大小像是人的嘴,可咬痕上有著四個深深的傷口,鄉親們嘰嘰喳喳都在猜測是不是僵尸出來作惡。

原因是這樣的。

其實我比誰都更熟悉這傷口,僵尸并沒有這么暴戾,這很有可能是狼人所咬,畢竟當年我差點被他們咬死過,所以我需要確認一下。

死者皆為女性,根據犯罪心理學理論,受害人與加害人之間一定存在某種聯系,而連續殺人,且受害者類型單一,可以推斷出兇手是將一個特殊形象代入到被害人的身上,初步推斷是母親或是戀人。

03

兇手對于雙腳的獨特重視,說明腳部對于他而言有著特殊的意義。而令受害人失去雙腳的行為極具個人特色,所以我推斷兇手應該本身就是腳步殘疾,并且因為殘疾,他在幼年成長以及青春期期間遭受過歧視和非人的待遇,而這一經歷又與被害人身上所附加的形象有著直接的關系。

蘇敏頂著兩個碩大的黑眼圈回來了,樣子好不可憐,這要是拉出去拍張照估計就能當被虐待勞工的代表。我收拾了下面前的桌子,假裝嚴肅地說道:“你倒是走的輕巧,我怎么不知道咱們所還能搶刑偵隊的飯碗。”

兇手之前無犯罪經驗,屬于突然作案,證明短時間內一定有一個對于他而言極其嚴重的事情發生,成為了他的刺激點。

蘇敏的臉上帶著點微微的惆悵,她鼻梁高挺,眼窩深邃,本該是個冷美人的氣質,卻硬生生地被那種隨時隨地可以嚎哭一場的性格掰得不三不四。

死者年齡偏大,若是戀人關系首先刺激點不明確,其次兇手此時年齡也應該與受害人年齡相仿,犯罪難度過大。

“所長,誰家刑警沒事天天打開新世界的大門,當然是他們處理不了才扔給我們啊。”

所以我推斷兇手應該幼年長期受到母親虐待,且母親極其喜歡紅色衣服。至于刺激點,我想應該是他的母親在近期去世了。

我站了起來,順手抄起身邊的一沓資料,在她頭上輕輕地敲了一下說道:“蠢孩子,上次出任務受傷重不重?”

兇手與母親常年相依為命,但是幼年的虐待以及身體上的缺失導致他對母親的感情應該是復雜的,恨意與親情并存,這種畸形的情感在失去對象后便極易滋生出變態的沖動,導致犯罪。

她像是被敲地有點發懵,愣神地看著我說:“boss,您突然這么衣冠楚楚我受不了。”她隨口損了我一句,“沒事了,現在。”

在這里可以大膽猜測一下,兇手對于母親的恨意可能會致使他保留母親遺體,作為寄托情感的象征。

我打量了她一下,“嗯,跟人斗毆還輸了,活該扣半年工資。”她臉上正經的神色仿佛碎裂的鏡子,我輕易地感受到了她濃重的失落。“行了,行了,說說,怎么回事吧,按照你對于工資的重視來說,無緣無故離職,你是被買通了吧。”


蘇敏揉了揉眉心,撇了撇嘴說道:“秦哥,你今天去現場看了吧。”

兇手能夠連續作案,除了他對拋尸地點以及周圍環境十分熟悉這一要素之外,如何成功吸引受害者也是一個必不可少的因素。

我點了點頭說:“不是普通人干的。”

如何吸引?

她像看白癡一樣看了我一眼說:“是普通人干的還用得著勞駕您來,那死者呢?”

大家別忘了,受害人皆為服務行業,倘若傍晚有一名急需幫助,且看上去毫無危險的人出現,她們會怎么做?

我想了想說:“嗯,看起來是個眉清目秀的小少年,身份暫時還沒有調查清楚。”

沒錯,兇手一定是利用了殘疾這一特點,吸引了受害者的注意,提出幫忙送回家之類的請求。將受害人哄騙回家之后,便可利用請其喝水為由對其下藥。

蘇敏有些躊躇地說道:“秦哥,你也知道我的眼睛看非人之物總是有點不一樣的。今天你看到的案子并不是第一起了,第一起是在三年前,晚上加班查的,我第一時間就去了現場,”她困難地回憶了一下,咽了咽口水說道:“秦哥,我不暈血,但是當我看到滿地的血肉都泛著紅光的時候,我真的起了一身的雞皮疙瘩,什么樣子的鬼我都見過一些,但這樣的人,我是頭一次見,明明是個人,但他的血卻不是人的血。”

這也解釋了為什么在已經發生命案的情況下仍高頻率地出現受害者,確實殘疾這一形象太過弱小,很難引起人們的警惕,甚至我猜測受害者們應該與兇手在之前見過面,對其殘疾這一事實有過了解。

“一地的血肉?這次我去的現場倒還比較整潔,傷口只在脖子上。”

至于第一名受害者,我猜想,可能兇手當時的確請求她的幫助,只不過面對如此與母親相似的女性,他沒有承受住內心的誘惑,下了殺手。

她像是有點詫異,“不是說連環殺人犯只會升級嗎?良心發現?”

這也是為什么第一受害人嘴邊會出現乙醚痕跡,應該是兇手第一次實施犯罪,經驗不足導致被害人中途醒來,兇手再次將其迷暈而留下來的。

我倒是沒反對她這個不著調的想法,“嗯,也不是沒有這種可能性。”說完,看著蘇敏緊皺著眉頭,便擺了擺手說道:“行了,今天先回去休息吧,明天跟我去受害人家里走訪一下,估計會有些收獲。”


蘇敏點了點頭,轉身走到門口的時候,突然轉頭看他,抿了抿唇,看著有些小心翼翼的樣子,“秦……師父,我不是因為害怕才辭職的。”

那么接下來我會針對以上分析給出最終的側寫。

我抬眼挑眉,這丫頭開竅了,她是我手把手帶出來的,從來沒喊過我一聲“師父”,八成是真的嚇怕了。“那為什么?”她皺了皺眉又恢復了剛才的樣子,“師父,你見過這樣的傷口嗎?”

兇手,男,20到30歲之間,未婚,雙腳殘疾,使用輪椅,但是平日也會使用義肢生活。長年與母親居住,母親職業應該為醫務工作者或是曾經從事過相關職業,家中留有不少醫藥用品和工具。

我仰頭躺在辦公室的軟椅上,抬頭看著破破爛爛的吊頂,生出點年華已過的感慨:“那次我跟你差不多狼狽,差點嚇得卷鋪蓋回家,小時候跟著師父出去歷練,半路在山嶺里走丟了,遇見一個像是狼人的家伙,當時我可是連入門都沒算的兔崽子,被那東西咬在手臂上了,當時那個血跟不要錢似的流。”

兇手常年居住于公園附近,熟悉地形,應該是固定人口。

蘇敏欲言又止地看著我,我示意她有話就說,蘇敏抿了抿嘴,“師父,怪不得你當時那么跟我強調認路的重要性。”

最后一點,兇手使用割喉放血結束受害者的生命,屬于畸形的發泄性行為,所以他本身應該是心理型性無能,但也不排除身患殘疾導致性無能這一可能性。

我恨不得把她的腦子撬開看看里面裝的是不是棉花,翻了個白眼說道:“牙印是一樣的,暴戾程度也是一樣的。”


04

洋洋灑灑地編輯好,我點擊提交答案,幾秒鐘之后,便在問題下面看到了我的回答。

死者家在附近的一個小村子里,我開著車打著暖氣,蘇敏系了安全帶,坐在副駕駛上,“說吧,你是怎么半路撂挑子的?”

不一會,新消息接連不斷的跳出,贊、評論、關注等等消息此起彼伏。

蘇敏單手撐著頭,“秦哥,你說我心軟,下不去手遲早有一天給自己帶來禍害,原來我不信,現在我信了。”

我點開評論,里面大多是“遇見大神了。”、“方木,你在么?”、“關隊,天黑了,趕緊回家,我們要表弟!”等等調侃或感謝,當然也有一些不和諧的聲音存在,說著一些類似胡說八道,純粹個人臆想之類的話。

她苦笑了一下,“那天晚上,其實我在兇案發生之前就見過兇手和受害人,嗯,我記得那天下午翹班出來在那片林子里逛,在入口看見了一個小女孩,一身淺綠色的衣服,特別好看,我擔心誰家孩子丟了,就問了一句,結果那孩子也不說話,轉身就跑了,我以為她認生,也沒多管。不過轉著轉著,就聽到打斗的動靜了,睜了眼就看見前面陰光陣陣,我沒多想就跑過去了。”

我笑了笑,站起身,直了直腰。

蘇敏說到這里臉上血色褪盡,我伸手為她把暖氣的溫度打得更高一些,她似乎緩了緩說道:“我看到……不知道是什么生物,只到我胸口,明明是個人,行為卻像野獸一樣,正在逼近一個坐在地上的男孩,看著也就十幾歲的樣子,我跑過去一個過肩摔把那個人按在地上,看清了那人是個女孩,年紀也不大,看著很焦急的樣子,還差點把我掀翻,結果我退了一步剛轉身就什么都看不見了。我只記得伸手一摸,臉上全是黏糊糊的血,然后就什么都不知道了,醒來就在醫院,咱事務所還給批的工傷。”


我一個急轉彎甩得蘇敏猛地一哆嗦,她瞪了我一眼,“傷口在我眼睛中間,血糊了一臉,什么都看不見了。不過說起來,傷我的人應該是那個男孩。”

時間已經臨近午夜,回答個問題耗費了我太多的時間。

我點了點頭問道:“怎么不早說?”蘇敏再次像看白癡一樣看了我一眼,“我當然說了,不然怎么把你調過來了。”我一挑眉,“那就有意思了,我還以為我是被富二代擠過來的。”

耽誤事耽誤事。

蘇敏沉默了一會,眉頭皺的像打了個結說:“秦哥,那個,據說那天是林boss把我送到醫院的。”

我低聲罵著自己,走到廚房接了杯水,放在桌子上,隨后和屋內的母親告了別,拿下義肢,坐在輪椅上,出了門。

我堪堪一腳剎車,車子發出吱的一聲,在路上帶出一道慘白的痕跡。“林柏!!”我算是知道了,我真的是被賣出去了。

耽誤事又能怎么辦,還是有人贊、有人關注比較重要。

蘇敏明顯比我更激動,單手拽著安全帶大聲朝我吼道:“師父!!!你駕照是假的吧。”


我一巴掌拍她頭上,“膽子大了,敢勾結上司欺負自己師父了!蠢,一點長進都沒有,剛才有東西過去了。”

蘇敏聽我說前半句的時候還齜牙咧嘴,后半句便伸著腦袋向外望去說:“我咋沒看見?”

我看了看手表,一邊開門下車一邊說:“我是不是告訴過你有時候不能太相信自己的眼睛?”

蘇敏一愣,走到車前,車前空空如也,我蹲了下來聞了聞周圍的空氣說道:“好像還受傷了。”

蘇敏瞬間也就明白了,閉著眼睛嗅了嗅,“不像人類的血,有些像狼人的血。”

我點了點頭,站起來欣慰的說:“孺子可教。”說完單手三指點在她額頭。蘇敏回頭一看,嚇了一大跳,車窗上有三滴雨滴狀血跡,我抬頭看了看說:“估計是飛過去的。”

蘇敏湊近血跡睜開眼睛一雙金色瞳仁,仔細看了看,“林哥,這個人我可能見過,跟上次案子的血液味道是一樣的。”

“采個樣本吧,至于這人,不急著追。傷你的人也是有意思,他怎么就知道你身上最值錢的地方就是這雙眼睛?”蘇敏看著我打了個冷戰。

05

沒過多久,我們便在一間小房子前停下了。蘇敏看了看這間小房子點了點頭說道:“就是這里。”

我順手撈起卷宗,跟蘇敏下了車。門口落了些灰,像是很久沒人居住的樣子,我走到門口轉了兩圈,抬手敲了敲門,“有人在嗎?”

半晌,一位老婦人探出頭來,雙眼渾濁,布滿了紅血絲,樣子看起來十分的憔悴。我掏出準備好的證件說道:“您好,我是警察,想來問問案件情況。”

老人像是被踩了尾巴的貓,臉上顯現出極度驚恐的表情,“走!你們走!該說的我都說了,你們為什么還要回來折磨我!”說完便狠狠地關上了門。

蘇敏對著擺了擺手,“秦哥,看吧,都說了咱們這行是高危。”

我頗有些恨鐵不成鋼問她:“看出什么了嗎?”

蘇敏收起了不著調的表情說:“是個老婦人正常的人,我上次來的時候,也是她,不過嗯,當時她身邊還有個小女孩。”

我點了點頭,甩了甩手,“看樣子我們還得更近一點。”說完,我拽著蘇敏飛身上墻,悄無聲息。居高臨下,是個偷窺的好地方。

蘇敏抽了抽嘴角,拉著我的袖子說:“秦哥,你慢點,我恐高。”

我丟給她了一個“白癡”的眼神,凝神看向小院。小院非常普通,一個正廳,兩邊各有兩間屋子。“至少這個院子里還有一個人。”我對著蘇敏說。

蘇敏點了點頭說道:“是,并且還是個女孩,年齡不大。”我側頭看了她一眼,她立馬心領神會一邊比劃一邊說:“你看啊,這幾個屋子看著都沒什么問題,只有一個屋子門口有棉布簾子,蓋得嚴嚴實實,窗臺上有個小書包,看起來是剛剛洗過,不是紀念品。”

我摸了摸她的腦袋說道:“乖孩子,不愧是我徒弟。不過還有一點,這里失去過親人,不只一個。”

蘇敏抬頭看我,有點不解問道:“那不是很明顯么?要不然我們為什么過來。”

我看著蘇敏的傻樣子嘆了口氣說:“看清楚點,棉布簾子并不是只有一個,在那間房子旁邊的門上,也有個棉布簾子,只不過掛起來了,并且你看到了嗎?墻上有挽聯的痕跡,幾乎每個房間門口都有,那個房間看起來是剛剛收拾過的樣子,應該是主人刻意保持的,旁邊也一樣。那里住的人必定是她的孩子,估計跟那小女孩是平輩關系。夫妻房間的布置與孩子房間的布置還是有挺大不一樣的。”

蘇敏點點頭,若有所思的閉上眼睛再睜開就是一雙金色的瞳仁,看了院子好一會轉頭對我說:“秦哥,很奇怪啊,什么都沒有。”

我皺了皺眉問道:“什么都沒有嗎?”

她搖了搖頭說道:“一般在這種情況下,逝者都還會眷戀地待在自己房間里,但這里沒有。”說完蘇敏抽了抽眼角,像是想起了什么不太美好的事情。

我拽著她從高處跳下來問她:“怎么?”她苦笑著回答:“沒什么,就突然想起來小時候在墓地跟前跟一群鬼聊天的事情。他們覺得終于找到了存在感。”

我摸了摸她的頭發說:“其實這是好事情。”說完,正準備回車上,就見一個背著書包的小女孩回來了,看起來不過六七歲的樣子。我看著這孩子有著說不出的熟悉感,粉色的小紗裙,被棉襖裹的像個小熊,鼻子尖上帶著點粉色,睫毛很長,是個好看的孩子。

我看了看這個孩子,想起剛才在屋檐上看到側臥里掛著的書包,便走到她跟前蹲了下來,盡量用溫柔的語氣問道:“小姑娘,你好,我是警察,我想問你點事情好不好?”

蘇敏沒有動,站在我身后看著這孩子。小姑娘像是被嚇了一跳,站在原地沒有動,她的一只手放在自己身后,愣了兩三秒鐘才把兩只手握在了一起,抬頭有點怯生生地說:“我……我不認識你。”

我揉了揉臉,擺出生平里最慈祥的一個笑容說道:“你看啊,這是你家門口,哥哥問幾個問題就走好不好,你要是害怕可以把你家人叫出來。”

她考慮了一會兒說道:“那……那叔叔你問吧。”一聲“叔叔”像是砸中了蘇敏的笑穴,但為了保持嚴肅,她努力憋住臉上的笑意。

我有些尷尬地咳了一聲問道:“你有哥哥姐姐嗎?”她點了點頭,眼睛里暗淡了下來。我知道這孩子的哥哥是我們手中案子的受害人,我盡量用溫和一點的聲音說:“那你能說說最后一次見到哥哥的時候他人在哪嗎?”

她像是回憶了一會兒說:“在家,在他的臥室里打電話,打完電話他就出門了。”

我瞇了瞇眼睛,聲音更輕柔了些問道:“那你知道打電話的人是誰嗎?”小姑娘的手指攪了攪衣服角唯唯諾諾地說道:“我,我不知道,就是有人打電話給哥哥,說約林子里見面,然后他就出去了,之后就再也沒回來過。”

說完這話,小女孩顯現出一副很害怕的樣子,往后退了兩步。門在這個時候開了,老婦人臉上的蒼老像是被哀傷刻出來的,褶皺像被風化過的巖石。“年年進來。”

叫年年的孩子如蒙大赦,像一只靈巧的貓,順著墻邊鉆了進去,門被關上之前,我看到了一雙憤怒的眼睛。

我看了看關上的門,站起身來點上一根煙,走回車前。蘇敏靠在車上沒說話,我看了看她蒼白的臉說道:“看樣子上次消耗不少。”蘇敏抽了抽鼻子,看向跟前寂寥的房子心不在焉地說道:“給人一個交代也是值得的。”

我彈了彈煙灰,有些火星落在腳下的雪地上,嘆了口氣說道:“有時候你看到的不一定是真的,誰給誰交代也不一定。”

蘇敏看了我一會,咳了一聲拉開副駕駛的車門,“秦哥走吧。回去看看。”

我上車點火起步,看著灰色的屋子消失在后視鏡里。其實我根本就沒打算進屋子,那戶人家里出了案子,警察早就把家訪做得分毫不差,連那屋子什么時候打得地基都清楚。

老人也說不上有多老,四十五歲左右,原來是個美人,這兩年卻突然就老了。她對警察說不上和顏悅色卻也算是配合,可到我這里卻連門都沒讓進,有兩種可能,一種是家訪得煩了,還有一種是她知道我們是干什么的,并且很排斥。

我撐著方向盤想了很久,我覺得我沒見過她,雖然我的記憶力被蘇敏他們稱作是老年癡呆級別的,可我不至于回憶不起來。至少,我沒有跟她直接接觸過。

正思考著,蘇敏突然出聲到:“秦哥,你覺不覺得那孩子有點怪。”我回了個神問道:“你才反應過來?”

她挑了挑眉示意我接著說,“那孩子怎么知道那電話是約她哥哥出去的,這點先不提,她怎么知道她哥哥要去個那林子?你在家習慣開外放打電話么?”我側頭看著漸漸消失的村子。“最重要的是,那個林子,是他家的,封山育林的時候,別說外人了,就是自家人都盡量不進去,免得不小心引起火災,他要去那林子里,怎么會是外人約的。”

蘇敏把手放在車上的暖風口,皺著眉頭說道:“其實秦哥,我特別不想懷疑那孩子,但是從背影看起來,那孩子跟當時我在林子里看到的小孩很像。”

我開大了點暖風又補充道:“其實你看看,那林子離咱們事務所真的很近啊。”

蘇敏順著我的話說道:“咱們事務所整個一邪教組織,選址看風水是一絕。”

我偏過頭對她說:“也許這家人跟咱們認識也說不定,我不覺得咱們林boss喜歡把地址選在別人家后院。”

06

材料科的小李戴著一副眼鏡,全名叫做李殊,斯斯文文的樣子總讓人覺得三沓紙就能把他壓垮。但他算是個工作狂,極其喜歡印在紙上的東西,他不信任存在在信息流里的代碼,所以事務所專門給他辟了一個屋子留做材料室,只要是沒解決的案子,材料室里都會有備份,完成一份銷毀一份,所有人畢生的愿望就是清空這間材料室。

蘇敏一只手撐在桌子上,對著文文弱弱的李殊說:“小李,找找上次案子的全部資料。”

李殊抬頭推了推眼鏡說:“啊,那蘇姐你等等。”說完起身往材料堆里跑去。

我靠在門口有點困了,閉著眼睛。蘇敏抬頭看到我,趁著李殊還沒回來溜達到我身邊歪著腦袋問我:“秦哥,你有什么想法嗎?”

我睜眼迷迷糊糊看了她一眼問道:“材料看完了?”

她撇了撇還在忙碌翻找的李殊說:“沒呢。”

我站直換了個姿勢說道:“蘇敏,你了解狼人這種生物?”

蘇敏疑惑地搖了搖頭,“它們其實跟人類的思維差不多,只不過以血肉為食,天性而已,只有在快成年的那一段時間里,它們才會有強烈的吸血欲望,但也不是克制不住,也達不到暴戾的程度,就像你會因為吃不到糖而把一個人生生撕碎嗎?”

蘇敏看著我,帶著一點迷惑不解問道:“可是你不是說這案子不是狼人做的嗎?這么說那我們還是得從狼人開始查嗎?”我抬手摸了摸她的頭頂說道:“傻孩子,雖然不是狼人做的,但跟狼人脫不了關系。”

她聽完點了點頭,李殊已經在喊她了,“蘇姐,你來看看。”蘇敏轉身跑了回去。我看著兩個孩子認真的表情突然就覺得其實就算我不來他們也能處理的很好,但林柏做事情從不含糊,這次他以一個毫無意義的理由把我塞過來,恐怕就等著我給他打電話呢。

我轉身出去,陶藍迎面走來,他一身白大褂,像一位一絲不茍的醫生,小陶平時沒什么表情,冷得像把手術刀。他看到了我欠了欠身子說道:“秦所長,你看看這個材料。”

說完他伸手遞給我一沓文件,我大概翻了翻,果然事無巨細都寫下來了。我心里盤算了一會便合上資料抬頭看著眼前這個青年說道:“小陶,跟蘇敏再去趟現場,給你權利,完完整整地把痕跡備份帶回來,后天我要過去一趟。”

陶藍有些好奇,但還是沒多問,嚴肅地點了點頭,我靠在門框上笑著對他說:“年輕人還是該活潑點,后天跟我一塊去看看。”

他愣了愣,抬手掩飾著咳嗽了一聲說道:“謝謝所長。”說完邁著長腿走回了傷痕鑒定室。

我走到窗邊,窗戶外正對的是那片小林子,寒風裹著雪沫抽打在窗戶上,屋內屋外兩個世界被玻璃清楚地隔開,一邊林海雪原,滴水成冰,一邊人影幢幢,暖如春日。但誰都知道,有一個少年在冰冷的雪地里死無全尸,他的家人還在等著一個交代。

我沉默地看著窗外的林子,掏出手機。“喂?”電話那頭的聲音溫柔得像一塊玉石,即使看不到他的臉,都能輕易地被這一個字氣息里的笑意所安撫,可我心頭的石頭卻愈發沉重。

“林柏,你真的不跟我說清楚?”電話那頭傳來的是一聲無奈地嘆息。

“秦正,不是我不說,我唯一能告訴你的是,你是替咱師父還債的,況且也算是幫我個忙,別問了。”

我半晌沒說話,心想我改名叫“勤政”算了。“所里的地皮購買記錄給我發過來,不管是有公章的還是沒公章的。”

得到林柏的答復以后,我掛了電話走回我的辦公室,不久,郵箱就跳了跳,我點開是個小文檔,看來林柏知道我要什么,直接選好給我發過來了。

我站到打印機旁,拾起剛印好的文件,很薄,不多。我大概掃了一眼,心里就有了數。“小李,幫我找找趙雪明的資料,全部。”李殊從材料堆里抬起頭木訥地回答到:“好的。”

我掃過文件角落的簽名“趙雪明”,事務所地皮的賣家,算起來是老朋友了,要是這家人也姓趙的話,那就不奇怪事務所派我來還賬了。趙雪明是個狼人,與師傅及其投緣,但后來不知為什么好像鬧得不太愉快。

我收起手中的資料,出了門,我師父叫魏鶴,名字起的仙風道骨,生人面前衣冠楚楚,跟林柏有點像,但對于我們來說他就是個老不正經。師父一手帶著我跟林柏建立了工作室,這已經是很多年前的事情了。

五年前,他堅決要求退休,撂下手中的事務提著行李箱就走了,我記得挺清楚的,當時我只覺得老頭逃走了,現在看來我的直覺沒什么問題。

什么樣的債,他不能親自還,還有,我究竟要幫林柏什么忙。

(未完待續,明日完結)

中超视频