Python | 7招教你识别一个网站是否是Django后台

戳蓝字“CSDN云计算”关注我们哦!

作者 l 上海小胖   

来源 l Python专栏(ID:xpchuiit)

转载请联系授权(微信ID:pythonzhuanlan)


640?wx_fmt=jpeg


目录:

1. 利用Debug模式异常页面判断
2. 通过CSRF Token验证
3. Django Admin

4. 通过HTTP头
5. 拼凑细节
6. 通过一些第三方模块的特点判断
7. 分析静态文件


最近事情有点多,一直没有时间写原创,而又一直想写点什么,今天早上正好空下来,我就来写一篇Python的吧,这周末我总结下最近遇到的事情和以后的打算,和大家共勉。


平时开发们用Django写网站,你作为黑盒测试来说可能不需要关心以下的问题,但白盒呢?所以黑盒不想提升一下自己的能力吗?

今天我们就来说下,如何测试一个网站的后端是由Django编写的。


1. 利用Debug模式异常页面判断


最简单的就是,当DEBUG模式开启时,访问不存在的页面或出错的页面会有特殊的异常抛出。像这样的页面,我称之为黄代码(哈哈哈,写Django的自己知道,是不是经常会有),就可以确定是Django了

640?wx_fmt=png


2. 通过CSRF Token验证


访问一个包含表单的页面,表单中会有一个hidden input,用来存储CSRF检测的Token,其名字比较独特,csrfmiddlewaretoken:

640?wx_fmt=png

遇到有这个名字的表单,基本可以确定是Django。


假如开发者将 csrfmiddlewaretoken 这个名字换了,怎么办?

我们可以把刚刚的hidden input 给删了,然后登陆,因为缺少CSRF TOKEN,会返回一个Django的CSRF TOKEN错误页面给你:

640?wx_fmt=png


3. Django Admin


安装Django的时候会自带一个后台,地址是/admin(不过大多数网站会替换后台地址):

640?wx_fmt=png

遇到这个样式的后台界面,可以确定是Django。


4. 通过HTTP头


有的Django站点会返回Server头:

640?wx_fmt=png

虽然通过这种方式不能100%确定是Django后台,但范围就缩的很小了,是个Python,也就那几套Web了。


5. 拼凑细节


比如,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验证失败. 相应中断. 等。


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


Django之所以好用,因为其代码耦合性很低,所以有丰富的第三方模块可以直接使用。通过这些模块的特点也能判断目标网站是否是Django。

常用的第三方模块有django-rest-framework、django-debug-toolbar、django-bootstrap3、django-filter、django-cron、django-allauth、django-simple-captcha等。

比如,django-rest-framework会有一个调试页面:

640?wx_fmt=png

再比如,django-simple-captcha生成的验证码会包含一个名字是 captcha_0 ,值为40位hex的隐藏输入框。

这些第三方库的特点也可以辅助你判断,就是需要收集与细心观察了。


7. 分析静态文件


有的网站可能修改了Django的后台地址,但Django后台所使用的静态文件地址通常没有修改,也较难修改。

访问这些静态文件地址,看看内容是否是Django的这一套,就可以确定目标是否为Django,如 :http://0.0.0.0:8001/static/admin/css/dashboard.css

640?wx_fmt=png

但这个方法有个局限,如果目标网站没有使用Django自带的django-admin(未将其包含在settings.py的INSTALLED_APPS中),就没有这个静态文件了。


文来源:公众号 @Python专栏,作者上海小胖,四大咨询TechLead,mongoDB Professional 获得者。「Python专栏」专注Python领域的各种技术:爬虫、DevOps、人工智能、Web开发等。还有「大航海计划」,各种内推活动。


1.微信群:

添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


2.征稿:

投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。


推荐阅读

  • 这样学算法,包会包懂so easy~

  • 20k~50k,“寒冬季”一线城市技术人才依旧紧缺,千里马,赶紧来投!

  • 20张图表达程序员的心酸

  • Python 爬取爱奇艺腾讯视频 250,000 条数据分析为什么李诞不值得了?

  • 这位 50 岁的海归程序员,当着老板还在天天改 Bug

  • 人工智能凉凉了?中国 AI 人才缺口高达 12113 个!

  • 可替代Android的6大开源移动操作系统

640?wx_fmt=jpeg

↓点击“阅读原文”,打开APP 阅读更顺畅

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BugkuCTF-MISC题Photo的自我

下载附件得到一个压缩包&#xff0c;压缩包里面是个文件夹&#xff0c;文件夹内有一个图片和两个加密的压缩包&#xff0c;先看看这个图片 能隐约发现右下角有信息藏着的&#xff0c;修改图片高度得到图片右下角的信息:B:One2021 图片右下角的信息露出来了&#xff1a;B:One2…

C语言变量声明和定义 - C语言零基础入门教程

目录 1.变量名的开头必须是字母或下划线&#xff0c;不能是数字2.变量名中的字母是区分大小写的3.变量名绝对不可以是 C 语言关键字4.变量名中不能有空格四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 **程序猿有一个梗&#xff1a;写代码代码…

我那么拼命,为什么还会被裁掉?

戳蓝字“CSDN云计算”关注我们哦&#xff01;本文转载自「程序人生」&#xff0c;搜索「coder_life」即可关注。我们那么努力&#xff0c;为什么还会被裁掉&#xff1f;昨晚下班经过北京望京地铁站&#xff0c;看到一位姑娘&#xff0c;在换乘通道里的消防栓上&#xff0c;打开…

BugkuCTF-MISC题Pokergame

补充&#xff1a; 用010hex打开zip文件。 把504B0304后的第3、4个byte改成0000 即将0900改为0000 而504B0102后的第5、6个byte不需改成0000即可破解伪加密。 解题 下载&#xff0c;解压 文件有hint.txt,king.jpg,kinglet.jpg,Poke.zip 通过binwalk -e 和foremost分别分离kin…

C语言格式控制符/占位符 - C语言零基础入门教程

目录 1.C 语言格式控制符/占位符2.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 网络有这么一个段子&#xff1a; 如果说一个男生没对象 —单身狗&#xff1b;如果说一个女生没对象 — 狗不理&#xff1b; 1.C 语言格式控制符/占位符 不管是单…

Elastic:Beyond Search!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作为后端的程序员&#xff0c;如果没有听说过Elastic及其产品Elasticsearch或者ELK&#xff0c;那实在是太Out了&#xff0c;这款分布式的实时搜索和分析引擎自从诞生以来&#xff0c;就受到了众多程序员的青睐&#xff0c;自其第一…

PWN题[强网先锋]no_output

知识点 strcpy(dest, src) strcpy 函数用于将指定长度的字符串复制到字符数组里 语法形式为&#xff1a;char *strcpy(char *dest, const char *src, int n)&#xff0c; 表示把src所指向的字符串里以src地址开始的前n个字节复制到dest所指的数组里&#xff0c;并返回被复制后…

上传自己的项目到github

思路&#xff1a;用秘钥将自己项目和github建立连接&#xff0c;实现上传 实现&#xff1a; 1.准备工具&#xff0c;下git&#xff0c;配置环境变量&#xff0c; 桌面右击出现 就ok&#xff0c;然后 cmd 输入git --version 说明安装和配置成功 2.qq邮箱和qq密码注册github&…

漫画:如何实现大整数相乘?(上)

戳蓝字“CSDN云计算”关注我们哦&#xff01;前一段时间&#xff0c;小灰发布了一篇有关大整数相加的漫画&#xff0c;没看过的小伙伴可以先看一看&#xff1a;漫画&#xff1a;如何实现大整数相加&#xff1f;那么&#xff0c;大整数相乘又是如何实现的呢&#xff1f;起初&…

ret2dlresolve归纳

ret2dl_resolve的原理&#xff1a; 动态链接相关函数_dl_runtime_resolve(link_map_obj, reloc_index) 功能&#xff1a;在第一次调用某函数时运行&#xff0c;绑定其地址到对应的GOT表项 第一个参数link_map_obj一直为GOT[1]的地址 第二个参数reloc_index为被绑定函数在.rel.…

C语言条件判断 if / else - C语言零基础入门教程

目录 一.C 语言条件判断 if 1.if 语法2.if 实战 二.C 语言条件判断 if / else 1.if / else 语法2.if / else 实战 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 何谓 C 语言条件判断&#xff0c;其实很简单&#xff0c;即**根据条件&#xff…

到底什么是CDN?

戳蓝字“CSDN云计算”关注我们哦&#xff01;如今这个移动互联网时代&#xff0c;越来越多的人使用手机观看视频&#xff0c;丰富自己的娱乐生活。可是&#xff0c;大家在追剧的时候&#xff0c;有没有想过一个问题——为什么有时候明明自己手机的网速很快&#xff0c;但观看视…

BugkuCTF-MISC题MuMuMisc的简单题

查看提示 先看png图片 发现最左侧有些信息 看了大佬们的wp&#xff0c;需要写脚本把左侧这块读出来&#xff0c;黑色对应1&#xff0c;白色对应0&#xff0c;再转成字符 得到的结果base64解码&#xff0c;得到&#xff1a; 回过头看private.key&#xff0c;它其实是个jpg图…

“车联网”最强科普!据说它是未来五年5G兴衰的晴雨表?

戳蓝字“CSDN云计算”关注我们哦&#xff01;说到车联网&#xff0c;相信大家一定不会陌生。现在不管是汽车制造商、销售商&#xff0c;还是阿里腾讯这样的互联网企业&#xff0c;都会经常提到它。简单来说&#xff0c;车联网就是把汽车连起来&#xff0c;组成网络。不过&#…

BugkuCTF-MISC题random color

010打开file&#xff0c;发现文件尾有另一个png图片的数据&#xff0c;提取出来&#xff0c;放到Stegsolve里两张图对比一下&#xff0c;得到一个二维码

C语言逻辑运算符 - C语言零基础入门教程

目录 一.逻辑运算符 1.与运算 &&2.或运算 ||3.非运算 ! 二.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.逻辑运算符 在C 语言 if / else 条件判断中&#xff0c;一个 if 语句的条件判断可以由多个表达式构成,举个例子&#xff1a; …

程序员的晒娃方式

戳蓝字“CSDN云计算”关注我们哦&#xff01;&#xff08;图自&#xff1a;可乐柠檬的日常&#xff09;微博网友评论&#xff1a;挨踢南&#xff1a;性别那叫gender不是sexWTF王启旻ITF&#xff1a;babySay(Hello World!!!);lovelydong&#xff1a;c语言结构体么忘了渔阳2020&a…

BugkuCTF-MISC题split

Kali打开图片&#xff0c;显示 Binwalk和foremost分离不出有效文件 通过TwakPNG打开 显示文件第33个字节有问题&#xff0c;这可能暗示文件末尾的分水岭 Tweakpng打开说第33个字节开始报错&#xff0c;010打开发现从34字节开始的文本描述是(38 39 61)89a&#xff0c;第一反…

C语言三目运算符 - C语言零基础入门教程

目录 一.C 语言三目运算符简介二.C 语言三目运算符实战 1.使用三目运算符2.使用 if / else 条件判断 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.C 语言三目运算符简介 三目运算符&#xff0c;又称条件运算符&#xff0c;是计算机语言&…

BugkuCTF-MISC题telnet

wireshark打开networking.pcap 点击右键->TCP stream&#xff0c;弹出flag