当前位置:首页 > 技术文章 > 安全攻防 > 网络安全

判断目标站点是否为Django开发

发布时间:2017-12-07 16:59:34 作者:PHITHON 来源:PHITHON 点击量:
老文一篇,几个月以前发在【代码审计】小密圈里的文章,当时是写一个系列(Django安全漫谈),抽出其中的一部分,分享一下。
 

利用Debug模式异常页面判断

 
DEBUG模式开启时,访问不存在的页面或出错的页面会有特殊的异常抛出。像这样的页面,就可以确定是Django
 
1.jpg
 
 
 

CSRF Token名称确认

 
访问一个包含表单的页面,表单中会有一个隐藏的input,用来做CSRF检测的Token,其名字比较独特,csrfmiddlewaretoken:
 
2.jpg
 
 
遇到有这个名字的表单,基本可以确定是Django。
 
假如开发者将csrfmiddlewaretoken这个名字换了,怎么办?
 
随便向目标的某个页面POST一个数据包,因为缺少CSRF TOKEN,如果目标网站是Django,它将给你一个颇具其特色的错误页面:
 
3.jpg
 

利用后台确认

 
Django默认安装后会自带一个后台,地址是/admin(不过大多数网站会替换后台地址):
 
4.jpg
 
遇到这个样式的后台界面,可以确定是Django。
 
 
 

利用HTTP头

 
有的Django站点会返回Server头:
 
 
5.jpg
 
虽然不能100%确定是Djnago,但范围就缩的很小了。
 
 

通过一些细节判断

 
有些细节虽然不能100%确定是django,但多个细节组成在一起就可以基本确定了。
 
比如,Django输出的html中通常会有很多空白行,因为这些位置放的是逻辑语句,Django不像jinja2中会提供{%-这样清除空白行的方法:
 
6.jpg
 
 
再比如,Django默认找回密码的链接是/password_reset/,邮件发送成功是/password_reset/done/,找回密码链接是reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/,找回密码成功是/reset/done/,正常修改密码是/password_change/,修改成功是/password_change/done/。
 
不过这些链接都可以改,只能用作参考。
 
再比如,django文件上传的目录通常叫media,注册时密码要求8位以上数字加字母,分页通常是?page=2而不会是/page/2/,表单输入框的id通常是id_xxxx,中文的情况下还会有一些特定的翻译语句,如请上传一张有效的图片。您所上传的文件不是图片或者是已损坏的图片。、CSRF验证失败. 相应中断.等。
 
 
 

通过一些第三方模块的特点判断

 
Django之所以好用,因为其代码耦合性很低,所以有丰富的第三方模块可以直接使用。通过这些模块的特点也能判断目标网站是否是Django。
 
常用的第三方模块有django-rest-framework、django-debug-toolbar、django-bootstrap3、django-filter、django-cron、django-allauth、django-simple-captcha等。
 
比如,django-rest-framework默认包含一个登陆页面,/api-auth/login/:
 
7.jpg
 
再比如,django-simple-captcha生成的验证码会包含一个名字是captcha_0,值为40位hex的隐藏输入框。
 
这些第三方库的特点也可以辅助你判断,就是需要收集与细心观察了。
 
 
 

必杀技:用静态文件分析

 
有的网站可能修改了Django的后台地址,但Django后台所使用的静态文件地址通常没有修改,也较难修改。访问这些静态文件地址,看看内容是否是Django的这一套,就可以确定目标是否为Django:
 
如 :https://www.xxxxx.net/static/admin/css/dashboard.css 
 
8.jpg
 
我就不罗列了。
 
但这个方法有个局限,如果目标网站没有使用Django自带的django-admin(未将其包含在settings.py的INSTALLED_APPS中),就没有这个静态文件了。
 

本文链接:http://www.topjishu.net/article/50.html,如有转载,请注明出处!


关键词:判断,Django,开发


版权声明:TOP技术学院所发布内容部分为原创发布,本着技术分享的精神,也有部分收集整理来自互联网,对于来源明确的内容,会严格注明出处。收集整理的内容本平台不拥有所有权,也不承担相关法律责任。如果您发现本平台中有涉嫌抄袭的内容,可以联系管理员进行举报,并提供相关证据,一经查实,本平台将立刻删除涉嫌侵权内容。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表