天天看點

【安全牛學習筆記】反射型XSS攻擊漏洞的原理及解決辦法

發射型XSS

漏洞的原理及修複方法

1.常見的觸發場景

2.漏洞原理

3.漏洞危害

4.一些tips

5.如何避免&修複漏洞

直接将使用者資料輸出到浏覽器,沒有做安全處理

搜尋:

www-data@:~/controller$ vim searchController.class.php

<?php

class secrchController extends baseController{

    public $conn;

    public function searchAction()

        $keyword = request('keyword');

        if( $keyword && $this->loged){

            $model = new searchModel();

            $feeds = $model->search($keyword);

            $username = $this->username;

            $url = '/index.php?c=mission&a=feed';

            include 'tpl/search.tpl';

        }elseif($this->loged){

            $redirect = request('url');

            $url = '/index.php?=mission&a=feed';

            $username = $this->username;

            include 'tpl/search.tpl';

        }else{

            $redirectURL = urlencode('http://poper.com/index.php?c=search&a=search');

            header("Location: /index.php?c=index&url=".$redirectURL);

        }

    }

}

---------------------------------------------------------------------------------

www-data@:~/controller$ vim searchModel.class.php

<?php

class searchModel extends baseModel{

    public $conn;

    public function __construct(){

        parent:: __construct();

    }

    public function search($keyword){

        $keyword = '%'.$keyword.'%';

        $sql = "select username,url,content,time from mission where conten like ?";

        $db_prepare = $this->conn->prepare($sql);

        $db_prepare->execute(array($keyword));

        $result = $db_prepare->fetchAll();

        return $result;

    }

}

---------------------------------------------------------------------------------

www-data@:~/controller$ vim search.tpl

<?php

include 'head.tpl';

?>

<div class="container">

<div class="row row-offcanvas row-offcanvas-right">

<div class="panel panel-default col-xs-12 col-sm-9">

<div class="panel-body">

<span> please enter the username you want to search: </span>

</br>

<dir class="Center">

<form action="/index.php?c=search&search" method="post">

<div class="input-group output-group-lg">

<input type="text" name="keyword" class="form-control missionKeyword"></input>

<span class="input-group-addon missionSearch">Search</span>

</div>

</form>

<span>here is the result for:<?php echo $keyword;?> </span>

//修複方法:<span>here is the result for:<?php echo htmlspecialchars($keyword);?> </span>

?php

f(isset($feeds)){

    foreachr($feeds as $feed){

        echo '<ul class="list-group">'

        echo '<li class="list-group-tiem">';

        $mission_username = $feed['username'];

        $mission_url = $feed['url'];

        $mission_content = $feed['content'];

        $mission_time = $feed['time'];

        include 'feeds.tpl';

        echo '</li>';

        echo '</ul>';

}}?>

</tbody></table>

</div>

</div>

<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation">

<ul class="list-group">

<li class="list-group-item"><a href="/index.php?c=mission&a=feed&class=all" target="_blank" rel="external nofollow" ><span class="glyphicon plyphicon-tower">  All</a></li>

<li class="list-group-item"><a href="/index.php?c=mission&a=feed&class=tech" target="_blank" rel="external nofollow" ><span class="glyphicon plyphicon-th-list"></span> tech</a></li>

<li class="list-group-item"><a href="/index.php?c=mission&a=feed&class=news" target="_blank" rel="external nofollow" ><span class="glphincon glyphicon-th-list</span> news</a></li>

<li class="list-group-item"><a href="/index.php?c=mission&a=feed&class=other" target="_blank" rel="external nofollow" ><span class="glphincon glyphicon-th-list</span> other</a></li>

</ul>

</div>

</div>

</div>

<?php

include 'footer.tpl';

?>

---------------------------------------------------------------------------------

[email protected]:~/tpl$ vim feeds.tpl

<div class="media">

    <a class="media-legt media-middle" href="#" target="_blank" rel="external nofollow" >

        <img data-holder-rendered="true" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+PGRlZnMvPjxyZWN0IHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgZmlsbD0iI0VFRUVFRSIvPjxnPjx0ZXh0IHg9IjEyLjk1ODMzMzk2OTExNjIxMSIgeT0iMzIiIHN0eWxlPSJmaWxsOiNBQUFBQUE7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LWZhbWlseTpBcmlhbCwgSGVsdmV0aWNhLCBPcGVuIFNhbnMsIHNhbnMtc2VyaWYsIG1vbm9zcGFjZTtmb250LXNpemU6MTBwdDtkb21pbmFudC1iYXNlbGluZTpjZW50cmFsIj42NHg2NDwvdGV4dD48L2c+PC9zdmc+" style="width: 75px; height: 75px;" src="holder.js/75x75" alt="75x75">

  </a>

  <div class="media-body">

    <h4 class="media-heading">user:<a href="" target="_blank" rel="external nofollow" class="mission-username"><?php echo $mission_username; ?></a></h4>

    <p class="mission-url">url:<?php echo $mission_url; ?></p>

    <p class="mission-content">content:<?php echo $mission_content; ?></p>

    <p class="mission-time">time<?php echo $mission_time; ?></p>

    <p class="mission-delete"><a href="<?php echo $delete; ?>" target="_blank" rel="external nofollow" >delete</a></p>

  </div>

</div>

---------------------------------------------------------------------------------

<script>alert("test for search")</script>

1.找到一個反射型XSS漏洞

2.将url發送給别人

3.點選浏覽url

漏洞危害:

盜取使用者的cookie,模拟使用者請求,講反射型XSS持久化作為存儲型XSS利用等。

在使用者的的浏覽器中執行任意javascript代碼

一些tips

漏洞修複:

在輸出所有使用者可控的資料時,對資料做轉義||編碼。

該筆記為安全牛課堂學員筆記,想看此課程或者資訊安全類幹貨可以移步到安全牛課堂

Security+認證為什麼是網際網路+時代最火爆的認證?

      牛妹先給大家介紹一下Security+

        Security+ 認證是一種中立第三方認證,其發證機構為美國計算機行業協會CompTIA ;是和CISSP、ITIL 等共同包含在内的國際 IT 業 10 大熱門認證之一,和CISSP偏重資訊安全管理相比,Security+ 認證更偏重資訊安全技術和操作。

       通過該認證證明了您具備網絡安全,合規性和操作安全,威脅和漏洞,應用程式、資料和主機安全,通路控制和身份管理以及加密技術等方面的能力。因其考試難度不易,含金量較高,目前已被全球企業和安全專業人士所普遍采納。

Security+認證如此火爆的原因?  

       原因一:在所有資訊安全認證當中,偏重資訊安全技術的認證是空白的, Security+認證正好可以彌補資訊安全技術領域的空白 。

      目前行業内受認可的資訊安全認證主要有CISP和CISSP,但是無論CISP還是CISSP都是偏重資訊安全管理的,技術知識講的寬泛且淺顯,考試都是一帶而過。而且CISSP要求持證人員的資訊安全工作經驗都要5年以上,CISP也要求大專學曆4年以上工作經驗,這些要求無疑把有能力且上進的年輕人的持證之路堵住。在現實社會中,無論是找工作還是升職加薪,或是投标時候報人員,認證都是必不可少的,這給年輕人帶來了很多不公平。而Security+的出現可以掃清這些年輕人職業發展中的障礙,由于Security+偏重資訊安全技術,是以對工作經驗沒有特别的要求。隻要你有IT相關背景,追求進步就可以學習和考試。

       原因二: IT運維人員工作與翻身的利器。

       在銀行、證券、保險、資訊通訊等行業,IT運維人員非常多,IT運維涉及的工作面也非常廣。是一個集網絡、系統、安全、應用架構、存儲為一體的綜合性技術崗。雖然沒有程式猿們“生當做光棍,死亦寫代碼”的悲壯,但也有着“鋤禾日當午,不如運維苦“的感慨。天天對着電腦和機器,時間長了難免有對于職業發展的迷茫和困惑。Security+國際認證的出現可以讓有追求的IT運維人員學習網絡安全知識,掌握網絡安全實踐。職業發展朝着網絡安全的方向發展,解決國内資訊安全人才的匮乏問題。另外,即使不轉型,要做好運維工作,學習安全知識取得安全認證也是必不可少的。

        原因三:接地氣、國際範兒、考試友善、費用适中!

CompTIA作為全球ICT領域最具影響力的全球領先機構,在資訊安全人才認證方面是專業、公平、公正的。Security+認證偏重操作且和一線工程師的日常工作息息相關。适合銀行、證券、保險、網際網路公司等IT相關人員學習。作為國際認證在全球147個國家受到廣泛的認可。

        在目前的資訊安全大潮之下,人才是資訊安全發展的關鍵。而目前國内的資訊安全人才是非常匮乏的,相信Security+認證一定會成為最火爆的資訊安全認證。

繼續閱讀