[渗透测试]CSRF相关

懒得整理了,直接贴链接了。
参考资料:
讓我們來談談 CSRF

CSRF

CSRF,跨站请求伪造,也被称为one click attack或者session riding。
XSS与CSRF区别:

  • XSS利用站点内的信任用户,盗取cookie
  • CSRF通过伪装成受信任用户请求受信任的网站

原理

利用目标用户的合法身份,以目标用户的名义执行某些非法操作
例如,一个转账案例中,初始化链接为
http://www.xxx.com/pay.php?user=xx&money=100
构造恶意链接:
http://www.xxx.com/pay.php?user=恶意用户&money=10000
上述案例中,分析得知这个过程分为两个步骤,首先是会话验证,也就是服务端对cookie的验证,验证成功后,接受不了user和money两个值,并进行转账操作。因此CSRF成功利用的条件有两个:1.用户已经登陆系统。2.用户访问对应的URL。

无防护的CSRF漏洞利用

GET型CSRF代码分析


对于上面这段代码,我们只需要构造GET型URL,提交username和password参数,以此来新建对应的用户名和密码。例如将下面的URL发给管理员,就会在数据库中新增一条数据:
http://.../new_user.php?username=admin&passwpord=123123
如果觉得这种链接过于明显,可以用前端img标签的src属性对其进行隐藏:
<img src="http://..../new_user.php?username=admin&passwpord=123123">

POST型CSRF代码分析


攻击者可以通过开发者工具查看请求,得知传参的名字,以及这个请求是post类型,那么就可以构造一个如下的网页,当用户点击按钮时,即向数据库插入了一条新的用户数据

    <form action="http://..../new_user.php" method="post">
    <input type="hidden" name="username" value="admin_test">
    <input type="hidden" name="password" value="admin_test">
    <input type="hidden" name="sub" value="Ok">
    <input type="submit" name="test" value="我中奖了">
    </form>

CSRF自动化探测

手动探测

手动探测原理在于探测web应用程序具有防止CSRF的措施。
CSRF漏洞预防措施:

  • 二次验证:一般情况下需要js验证,是否执行成功取决于用户。
  • HTTP referer头
  • 是否设置token
  • HTTP自定义头

如果web应用程序的HTTP请求中没有对应的预防措施,那么很大程度上就确定存在CSRF漏洞

自动化探测工具

CSRFTester原理:利用代理抓取在浏览器中访问过的所有链接以及所有的表单等信息,通过在CSRFTester中修改对应的表单等信息,重新提交,相当于以此伪造客户端请求,如果修改的测试请求成功被网站服务端接收,则说明存在CSRF漏洞。

CSRF漏洞token防御

CSRF漏洞实质:服务器无法准确判断当前请求是否是合法用户的自定义操作。如果服务器在用户登陆后给予用户一个唯一的合法令牌,每一次操作过程中,服务器都会验证令牌是否正确,如果正确执行操作,不正确不执行操作。一般情况下,给予的令牌会写入表单中隐藏域的value值中,随着表单内容进行提交。
简单模型:登陆验证->登陆成功后,给予一个唯一的令牌。执行操作时,操作过程中验证令牌->成功再进行增删改查
生成token代码:唯一。例如下面的PHP代码生成token。

function generateToken(){
    $salt="test".date("h:i:s");
    $token=md5($salt);
    return $token
}

使用token进行CSRF漏洞防御:
1.登陆验证成功后,在会话session["user_token"]中保存token
2.在后台操作中,增删改查表单中增加隐藏域hidden,设置value为token
3.提交之后进行验证token是否正确

CSRF绕过referer技巧

referer防御CSRF原理

当用户点击被构造好的CSRF利用页面,那么在执行用户对应操作时,提交的HTTP请求中就有对应的referer值,此时服务器端判断referer值是否与服务器的域名信息有关,如果不相关则不执行操作。
PHP referer防御代码编写
是否包含了某个域名

if(strpos($_SERVER['HTTP_REFERER'],'xx.com')!==false){
    判断成功 
}
else{
    判断失败
}

绕过referer技巧
如果服务端只判断当前的referer中是否具有域名,那么直接可以在站点目录下新建文件夹进行绕过,文件夹的名字为判断的域名或者ip地址。

GET型CSRF漏洞利用方法

链接利用:同上文提到的get型CSRF
iframe利用:iframe标签内容将在页面家在过程中自动进行加载,src指向的位置就是页面请求的位置。可以设置iframe的style->display:none,以此来不显示iframe加载的内容,类似于a标签里的href
img标签利用:img标签的内容会随着页面的加载而被请求,以此src指向的位置会在页面家在过程中进行请求
css-background利用:利用css中background样式中的url来加载远程机器上的内容,从而对url中的内容发送http请求

防范

客户端防范:对于数据库的修改请求,全部使用POST提交,禁止使用GET请求。
服务器端防范:一般的做法是在表单里面添加一段隐藏的唯一的token(请求令牌)。
验证码验证这种只能作为一个辅助手段,像是二次验证一样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352