e起学丨WEB安全渗透测试基础知识十三

周五的学习时间到啦!各位小伙伴,今天我们继续学习WEB安全渗透测试的基础知识第十三部分。

4.2

Python

4.2.1.格式化字符串

在Python中,有两种格式化字符串的方式,在Python2的较低版本中,格式化字符串的方式为"thisisa%s"%"test",之后增加了format的方式,语法为"thisisa{}".format(test)或者"thisisa{test}".format(test=test)

当格式化字符串由用户输入时,则可能会造成一些问题,下面是一个最简单的例子

classof{0}is{0.__class__}.format(42)

"classof42isclassint"

从上面这个简单的例子不难知道,当我们可以控制要format的字符串时,则可以使用__init__/__globals__等属性读取一些比较敏感的值,甚至任意执行代码。

4.2.2.反序列化

4.2.2.1.pickle

classA(object):

...a=1

...b=2

...def__reduce__(self):

...return(subprocess.Popen,((cmd.exe,),))

...

cPickle.dumps(A())

"csubprocess\nPopen\np1\n((Scmd.exe\np2\ntp3\ntp4\nRp5\n."

4.2.2.2.其他

●PyYAML

●marshal

●shelve

4.2.3.沙箱

4.2.3.1.常用函数

●eval/exec/


转载请注明:http://www.soiphoto.com/gznr/gznr/18243.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了