浅谈精准提取日志中的URL 老男孩网络安全培训班

    /    2019-08-09

背景

在分析日志的时候发现有些日志中参数中包含其他的URL,例如:

http://www.xxx.cn/r/common/register_tpl_shortcut.php?ico_url=http://www.abcfdsf.com/tg_play_1121.php&supplier_id=3&ep=tg&style=szsg_reg_tg03

http://b.xxx.cn?c=<IMG src="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode">

http://b.xxx.cn?c=<SCRIPT a="
>" src="http://xss.ha.ckers.org/a.js"></SCRIPT>

提取请求参数中的URL(xss.ha.ckers.org),再对比威胁情报数据库,如果命中黑名单直接标黑。如果不在黑名单,也不在公司的白名单里可以先做个标记,后续着重分析。

提取URL

关于URL的提取网上有很多文章,大部分都是是使用正则表达式,方法简单但是不太准确。我这里提供一种方法:采用词法分析,提取域名和IP。思路借鉴了这篇文章:https://blog.csdn.net/breaksoftware/article/details/7009209,有兴趣的可以去看看,事实证明跟着大神确实涨姿势。

原文是用C++版本,这里我用Python写了一个类似的,供大家参考。

常见的URL分类

IP形式:192.168.1.1,10.20.11.1

Domain形式:baidu.comwww.sina.comfreebuf.com

观察可以见得:IP形式的URL结构最为简单:4个小于255的数字被.分割;domain形式比较复杂,但是它们有共性:都具有顶级域名.com。

定义合法字符:

legalChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"
legalNumers = ['0''1''2''3''4''5''6''7''8''9']

顶级域名列表:

topLevelDomain = ['biz''com''edu''gov''info''int''mil''name''net''org''pro''aero''cat''coop',
              'jobs''museum''travel''arpa''root''mobi''post''tel''asia''geo''kid''mail''sco',
              'web''xxx''nato''example''invalid''test''bitnet''csnet''onion''uucp''ac''ad''ae',
              'af''ag''ai''al''am''an''ao''aq''ar''as''at''au''aw''ax''az''ba''bb',
              'bd''be''bf''bg''bh''bi''bj''bm''bn''bo''br''bs''bt''bv''bw''by''bz',
              'ca''cc''cd''cf''cg''ch''ci''ck''cl''cm''cn''co''cr''cu''cv''cx''cy',
              'cz''de''dj''dk''dm''do''dz''ec''ee''eg''eh''er''es''et''eu''fi''fj',
              'fk''fm''fo''fr''ga''gb''gd''ge''gf''gg''gh''gi''gl''gm''gn''gp''gq',
              'gr''gs''gt''gu''gw''gy''hk''hm''hn''hr''ht''hu''id''ie''il''im''in',
              'io''iq''ir''is''it''je''jm''jo''jp''ke''kg''kh''ki''km''kn''kp''kr',
              'kw''ky''kz''la''lb''lc''li''lk''lr''ls''lt''lu''lv''ly''ma''mc''md',
              'me''mg''mh''mk''ml''mm''mn''mo''mp''mq''mr''ms''mt''mu''mv''mw''mx',
              

(0)

分享至