2018.1.15学习python第二天02【字符串格式化符号与字符串的操作方法function】

CTF Pwn入门:栈溢出与格式化字符串漏洞原理与实践 在计算机安全领域,理解程序在内存中的运行机制是基础。栈溢出和格式化字符串漏洞是两类经典的软件漏洞,其原理源于程序对内存边界和输入验证的疏忽。栈溢出通过覆盖关键内存地址(如返回地址)来劫持控制流,而格式化字符串漏洞则利用格式化函数(如printf)的特性实现信息泄露或内存篡改。这些漏洞的利用价值在于,攻击者可以借此执行任意代码、获取敏感数据或提升权限,在CTF竞赛和真实安全测试中极为常见。本文以babygame靶场为例,结合pwntools和GDB等工具,详细演示了从环境搭建、漏洞分析到利用脚本编写的完整流程 阅读详情

       %c  格式化字符及其ASCII码
      %s  格式化字符串
      %d  格式化整数
      %u  格式化无符号整型
      %o  格式化无符号八进制数
      %x  格式化无符号十六进制数
      %X  格式化无符号十六进制数(大写)
      %f  格式化浮点数字,可指定小数点后的精度
      %e  用科学计数法格式化浮点数
      %E  作用同%e,用科学计数法格式化浮点数
      %g  %f和%e的简写
      %G  %f 和 %E 的简写
      %p  用十六进制数格式化变量的地址

%s:格式化字符串

#'%s'可以将非字符型转换成字符型:
print("name:%s"%'tom');
#'%'前面的'%s'会被替换成'tom'。
%d:格式化整数
print('age:%d'%20);
#这句代码会将'%d'替换成后面的'20'。
%f:格式化浮点数,可指定小数点后的精度
print('money:%.2f'%90.678);
#这句代码会将'%.2f'替换成90.67,保留两位小数。
#'%.2f'中的2可以被设置小数点后保留几位 。
.format() :格式化
print('name:{0} age:{1}'.format("tom",33));#花括号中的'0'和'1'分别代表后面.format()小括号中的第一个和第二个【通过下标】。
print("name:{name} age {age}".format(name="tom",age=33));#也可以用变量赋值的方式来获取.format()中对应的值。

#第二种   .format()格式化。。。多{}嵌套模式说明
print(('name:{0} age:{1}').format('tom',33));
print(('name:{{rt}} age:{1}').format('et',33))#{{}}是直接输出{{}}里的,剩下的不是{{}}的按照下标输出
print('三个花括号按照下标索取:'+('name:{{{1}}} age:{0})').format(90,'der'));
print('以变量赋值的方式:'+('name:{name} age:{age}').format(name='efr',age='31'));
print('键盘录入:'+('name:{name} age:{age}').format(name=str(input('请输入名字:')),age=int(input('请输入年龄:'))));
len();  获取字符串的长度。
word="hello python world";
print(len(word));#len()小括号里是变量名。
#输出变量word的值(字符串)的长度。
count();  获取某一个字符在一段字符串中出现的次数。
word="hello python world";
print(word.count("o"));
#'o'在名称为word的变量中,出现了几次。
capitalize();  将字符串中的第一个字母设定为大写。
word="hello python world";
print(word.capitalize());
#输出结果会将'hello'中的首字母'h'变为大写。
title();  将字符串中的每一个单词的第一个字母设定成大写。
word="hello python world";
print(word.title());
find():  查找字符串中的字符,并返回对应字符的下标,只会找一次。
word="hello python world";
print(word.find('o'));
#查找到word字符串中的从左到右数第一个'o',并且返回其下标,如果没有找到就会 返回'-1';
#还有也个函数是'rfind()',这个函数是从右往左开始查找。
#find();后面可以添加三个参数,第一个参数是查找的字符,第二个是从下标为几的开始查找,第三个是查找到哪个字符为止。
index():和find()函数差不多,只不过如果找不到要查找的字符,便会报异常(错误),而find()是返回 -1。index()也有一个从右往左查找与rfind()相似的参数:rindex();
replace():
替换 字符串中的字符,但是原来的字符串不会被改变。
word="hello python world";
print(word.replace("hello","nihao:"));
#replace()小括号里第一个参数是要被替换的,第二个参数是第一个参数替换为第二个参数。
split():拆分,小括号里可以写两个参数,第一个参数通过什么字符进行拆分,第二个参数拆分几次。
word='hello python world';
print(word.split("o",2));#拆分完后,返回的结果不包含拆分符。
splitlines([keepends]):按照行('\r','\r\n','\n')分割,返回一个包含各行作为元素的列表,如果参数 keepends  为 False,返回的结果不包含换行符,如果参数 keepends 为 True,返回的结果则保留字符串。
name="hellopythonnworld说的";
#splitlines(bool keepends):按照换行符进行拆分,
print(name.splitlines(True)[0]);#‘[0]’如果写‘0’,就是返回拆分后列表中下标为‘0’的那段字符串;如果不写‘[0]’则返回拆分后的整个列表
ljust():填充,在字符串的右边填充,ljust()小括号里有两个参数,第一个参数是‘把字符串填充为多少位’,第二个参数是‘填充的内容是什么’。
ljust(width[, fillchar]);返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
name="liSi";
name=name.ljust(10," ");#填充的内容为空格.
print(name);#再次输出被填充后新的变量name.
strip():去除空格
lstrip():去除字符串左边的空格
rstrip():去除字符串右边的空格
name='  lisi  ';
print(name.strip());
print(name.lstrip());
print(name.rstrip());
upper():将字符串中所有的小写字母强制转换成大写字母;
lower():将字符串中所有的大写字母强制转换成小写字母。
e='One Tow';#创建一个值为字符串类型的变量
print(e.upper());#'.'前面写变量名
print(e.lower());
partition():拆分,以()小括号里的字符为节点进行拆分,只返回‘头、分隔符、尾’三部分。
name="hello -python- world";
print(name.partition(" "));#通过空格进行拆分。
join():将列表组成新的字符串,mystr.join(sequence);mystr连接项sequence将要拼接的列表
s="-";
word=("a",'b','c');
print(s.join(word));#‘s’的值作为连接符,将列表word的值连接成一个字符串。
startswith():查看一段字符串是否以某几个字符开头;
endswith():查看一段字符串是否以某几个字符结尾。
phone="15510000000@163.com";
print(phone.startswith("155"));
print(phone.endswith("0000"));
isalpha():判断字符串是否是字母或文字,返回True或false
name="hellopythonnworld说的";
print(name.isalpha());
isdigit():判断字符串是否是数字,返回True或false
name="33890的看法";
print(name.isdigit());
isalnum():判断字符串是否是数字、字母或文字,返回True或false
name="发abc123";
print(name.isalnum());


文章有不足之处,请评论。

CTF Pwn盲打实战:格式化字符串漏洞利用原理与自动化脚本 格式化字符串漏洞是二进制安全领域中的一种经典内存破坏漏洞,其核心原理在于程序将用户输入直接作为格式化函数(如printf)的格式字符串参数,导致攻击者能够通过注入%x、%s、%n等格式化占位符,实现对程序内存的读取或写入。这种漏洞利用的价值在于它不依赖精确的栈布局,在缺乏二进制文件的“盲打”场景下尤为有效,常被用于CTF竞赛和渗透测试中。通过精心构造的payload,攻击者可以逐步泄露栈内存、计算关键地址偏移(如libc基址),最终实现任意地址读写,从而劫持程序控制流。本文聚焦于盲打环境下的实战利用,详细拆 阅读详情

相关推荐

Java/Python/JavaScript字符串引号转义与安全处理实战指南

字符串转义是编程中的基础概念,通过转义字符机制让特殊字符按字面意义解析。其技术原理在于使用反斜杠等转义符号改变后续字符的解析规则,避免语法冲突。这一机制在防止代码注入、确保数据完整性方面具有重要价值,广泛应用于用户输入处理、数据存储和配置文件生成等场景。在实际开发中,引号嵌套和SQL注入等安全问题尤为关键,需要针对不同编程语言实施相应的转义策略。本文通过具体代码示例,详细解析Java、Python和JavaScript中字符串引号的安全处理方案,涵盖转义机制、引号匹配逻辑和规范化输出等核心内容。

weixin_30512043的博客 593

12.字符串的基本概念与用法

目录 一、字符串的表达方法 二、字符串输出与格式化 三、访问字符串中的值 字符串是一种表示文本的数据类型,字符串可以是ASCII字符、各种符号以及各种Unicode 字符。 本文以Python官网关于Python3.9.1中字符串的说明文档为基础,加以实例总结了字符串的基本概念、用法。 一、字符串的表达方法 字符串可以用单引号('...')或双引号("...")括起来,结果相同。[1](\可用于转义引号,Python支持的其他转义字符见附表1) >>> 'spam eg.

qq_40407729的博客 2243

HTML、Python、C++核心符号详解:从语法到实战避坑指南

在编程语言中,符号是构成语法的基础元素,其精确理解直接关系到代码的正确性与性能。从概念上讲,符号承载了特定的语义和操作指令,例如赋值、比较、作用域解析等。其原理在于编译器或解释器会根据上下文解析符号,执行对应的底层操作。掌握符号的正确使用具有重要技术价值,能有效避免常见错误(如C++中的指针误用、Python中的可变默认参数陷阱),提升代码健壮性和可维护性。在实际应用场景中,不同语言的符号体系反映了其设计哲学:HTML的实体转义关乎安全与渲染;Python的装饰器和解包运算符体现了动态与简洁;C++的指针、

weixin_30856725的博客 411

Python 统计字符串里每个字符出现的次数的三种方法

记录一下,怕忘记了~ 1. setdefault()的形式判断 介绍: setdefault()方法提供了一种方式,在一行中完成这件事。传递给该方法的第一 个参数,是要检查的键。第二个参数,是如果该键不存在时要设置的值。如果该键 确实存在,方法就会返回键的值~ spam = {'name': 'Pooka', 'age': 5} print(spam.setdefault('col......

Loving 3万+

qt使用qxlsx实现xlsx、xls表格文件快速写入和读取

新年第二篇文章,收尾一个去年计划中发表文章和实现功能。

kbq的博客 1万+

CHI里的Error handling机制

本文讲解了CHI里的Error handling机制。

W1Z1Q的专栏 2500

Python字符串格式化全解析:从f-string到高级格式化规范

字符串格式化是编程中数据呈现的基础技术,其核心原理是将不同类型的数据转换为可读的文本格式。在Python开发中,格式化规范迷你语言提供了统一的控制机制,通过格式说明符实现对输出样式的精细调控。这项技术的工程价值在于提升代码可读性、确保数据展示一致性,并优化日志输出和报告生成。在数据分析、Web后端开发和自动化脚本等场景中,格式化功能直接影响用户体验和调试效率。本文聚焦于Python的f-string实现,深入解析对齐、精度控制和千位分隔符等高级功能,帮助开发者掌握字符串格式化的核心技巧。

weixin_34393428的博客 382

vue + video.js 加载多种视频流(HLS、FLV、RTMP、RTSP)

由于需要在一个项目内接入多种常用的视频流,所以接触到video.js,这里就做个记录。vue安装就不讲了,直接从项目开始了。RTSP格式已测试,无法成功播放,浏览器就识别不了STSP协议(提供两个解决方案:第一个是通过后端去转格式。第二个方案就是安装插件/中间件。目前想用浏览器直接播放RTSP格式流,没有其他更好的解决方法。

qq_17627195的博客 1万+

python格式化字符串_Python字符串格式化,format()格式化函数详细使用

Python接触比较多的是字符串,那么操作字符串也就多。Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符的字符串中。代码例子:%s:格式化字符串。%d:格式化整数。如果把它们插入的值交换位置报错。注意字符串格式符会规定插入值的类型。大概的意思就是:%d需要一个数字,而不是字符串。我开始学习python不知道字符串格式化,都...

weixin_39840729的博客 125

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 433

基于单片机的智能温控风扇设计

该智能温控风扇系统的设计目标是根据环境温度自动控制风扇的转速或开关状态,确保用户始终处于舒适的温度范围内。实时温度监测:通过温度传感器(如DS18B20或DHT22)实时监控环境温度。风扇控制:根据温度变化自动调节风扇的转速,温度过高时风扇加速,温度适中时风扇转速降低,达到节能与舒适平衡。LCD显示:通过LCD屏幕实时显示温度信息。无线通信:通过Wi-Fi或蓝牙模块将温度数据发送至手机或云平台,支持远程控制风扇的开关或调节转速。报警功能:温度过高或过低时,蜂鸣器发出警报,提示用户注意。

2201_76125393的博客 1159

Python学习教程:Python3之字符串格式化format函数详解(下)

Python学习教程:接着来跟大家讲Python 3之字符串格式化format函数详解(下)篇 格式限定符 format通过丰富的的“格式限定符”(语法是 {}中带:号)对需要格式的内容完成更加详细的制定。 进制转换 我们可以再限定符中制定不同的字符对数字进行进制转换的格式化,进制对应的表格: N = 99 print('{:b}'.format(N)) print...

java276582434的博客 297

工业级AI智能体落地:OpenClaw+ONNX Runtime全栈部署,端到端延迟压至12ms

OpenClaw+ONNX的组合为工业AI智能体的落地提供了一套完整、高效、安全的解决方案。它解决了传统云端智能体在工业场景中面临的延迟、安全和稳定性问题,实现了本地数据闭环和毫秒级响应。未来,随着边缘计算和轻量级大模型技术的发展,工业AI智能体将变得更加智能和强大。我们可以预见,在不久的将来,工厂里的每一台设备都将拥有自己的AI智能体,它们能够自主感知、自主决策、自主执行,真正实现工业生产的全自动化和智能化。👉 点击我的头像进入主页,关注专栏第一时间收到更新提醒,有问题评论区交流,看到都会回。

2601_94871597的博客 735

Python—补充_print的用法与字符串的格式化

print用法补充 print()函数查看帮助文件 >>> help(print) Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints th...

Dirge__的博客 405

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 587

PT:pt write_change to innovus 脚本

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1526

变量的格式化

变量的格式化输出 在python中可以使用print函数将信息输出到控制台 如果希望输出文字信息的同时,一起输出数据,就需要使用到格式化操作符 % 被称为格式化操作符,专门用于处理字符串中的格式 —— 包含 % 的字符串,被称为格式化字符串 —— % 和不同的字符连用,不同类型的数据需要使用不同的格式化字符 格式化字符 含义 %s 字符串 %d 有符号十进制整数,%06d...

weixin_43532020的博客 1054

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

function

这里写目录标题今日总结一、str (补充)1. 字符串格式化2. f-string二、function1. 函数式编程2. 认识函数3. 定义函数(造机器)4. 调用函数(使用机器)5. (非常重要)函数调用过程: 今日总结 一、str (补充) 1. 字符串格式化 字符串格式占位符 语法:包含字符串占位符的字符串 % (数据1, 数据2, 数据3,…) 说明: 数字占位符 % s - 字符串对应的占位符(python中可以用任何类型的数据赋值) %d — 整数对应的占位

ttts27的博客 264

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python 时间与字符串拼接异常:unsupported operand type(s) for +: ‘builtin_function_or_method‘ and ‘str‘

文章摘要:本文解释了Python中常见的"unsupported operand type"错误,主要由于函数调用缺少括号或变量未初始化导致。详细介绍了三种典型错误场景及解决方案:1)方法调用缺少括号时的修正方法;2)变量未初始化的正确处理方式;3)运算符误用在方法对象上的修正方案。文章还讲解了如何将time.time()时间戳转换为可读字符串,分别介绍了使用time.strftime()和datetime模块的两种实现方法,并列举了常用的时间格式化符号。提供了错误预防建议和完整的代码

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 4753

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

从Web安全到Pwn:格式化字符串漏洞原理与实战利用详解

格式化字符串漏洞是C/C++程序中常见的安全缺陷,源于程序员错误使用printf、sprintf等函数时,将用户输入直接作为格式化字符串参数。其核心原理在于攻击者通过控制格式化字符串,可以读取栈内存中的敏感数据(信息泄露)或向任意内存地址写入数据(任意地址写),这与Web安全中的SQL注入、XSS等漏洞在利用思路上有异曲同工之妙。从技术价值看,该漏洞能绕过多种安全机制,是获取程序控制权(如执行system("/bin/sh"))的关键跳板。在应用场景上,它常见于CTF竞赛、二进制安全评估及遗留系统渗透测试中

weixin_34037173的博客 535

python对于字符串的问题

python 的字符串 s1 = 'abc' s2 = "abc" s3 = ''' abc ''' print(id(s1),id(s2),id(s3)) print(s1 == s2)# 比较的是里面的内容 print(s1 is s2)#比较的是地址 print(s2 == s3) print(s2 is s3) s4 = input('请输入:') s5 = input('请输入:...

weixin_43911526的博客 195

零基础学Python(第十一章 字符串处理)

本套学习内容共计【22】个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助。 开发环境:【Win10】 开发工具:【Visual Studio 2019】 本章内容为:字符串处理。 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 = 'Hello World!' var2 = "你好 世界" 1、Python 字符串连接,使用【,】或【+】 var1 = '

红目香薰 736

JavaScript字符串格式化利器:sprintf.js核心用法与AI速成指南

字符串格式化是编程中的基础操作,它涉及将数据按特定格式转换为字符串,确保输出的一致性和可读性。其核心原理是通过格式说明符控制数据类型、精度、对齐等属性,实现精准输出。在JavaScript开发中,虽然模板字符串简化了基础拼接,但在处理数字精度、文本对齐等复杂场景时仍显不足。sprintf.js作为经典的格式化工具,完整移植了C语言的printf规范,并增加了JSON对象格式化等JavaScript特色功能,显著提升了数据报表、日志生成等场景的开发效率。借助AI编程助手,开发者可以快速掌握其安全格式和实战技巧

weixin_33717117的博客 412

CTF二进制漏洞实战:栈溢出与格式化字符串攻防解析

二进制漏洞是计算机安全领域的核心概念,指程序在底层运行时因逻辑缺陷导致的安全问题。其原理源于内存管理机制,如函数调用时栈帧的布局不当,可能被恶意数据覆盖关键控制信息。这类漏洞的技术价值在于揭示了软件安全的根本挑战,即信任边界与输入验证的缺失。在应用场景上,CTF竞赛提供了合法且系统的演练环境,参赛者通过分析、利用漏洞完成夺旗任务。本文聚焦栈溢出和格式化字符串两种经典漏洞,结合pwntools等工具链,详解从信息泄露到ROP链构建的完整利用过程,帮助读者掌握二进制安全的实战技能。

weixin_33701564的博客 437

来自python的【str字符串内置函数】

字符串内置函数–capitalize str.capitalize():将字符串转换成大写,其他字母变成小写 capitalize 含义 capitalize(...) | S.capitalize() -> str #输出是一个字符串 | | Return a capitalized version of S, i.e. make th...

qq_39532595的博客 2862

《利用python进行数据分析》笔记-第二章(一)

isinstance函数 检查一个对象是否是特定类型 输入: a=5 print(isintance(a,int)) 输出:True iter函数 迭代 def isiterable(obj): try: iter(obj) return(True) except TypeError:#不可遍历 re...

weixin_38818092的博客 783
上一篇: 2018.1.15学习python第二天01【切片】
下一篇: 2018.1.16学习python第三天01【循环while、for】
whatthinking
博客等级 码龄9年 133粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值