当前位置:首页 > 网络黑客 > 正文内容

Python安全编码攻略

访客4年前 (2021-04-15)网络黑客429

0x00 前语

from:http://sector.ca/Portals/17/Presentations15/SecTor_Branca.pdf

这个pdf中深化Python的中心库进行剖析,而且探讨了在两年的安全代码检查过程中,一些被认为是最要害的问题,最终也提出了一些解决方案和缓解的办法。我自己也在验证探求过程中添枝加叶了一点,如有过错还请指出哈。

下面一张图表明他们的办法论:

探求的场景为:

输入的数据是"不知道"的类型和巨细 运用RFC标准构建Libraries 数据在没有通过恰当的验证就被处理了 逻辑被更改为是独立于操作系统的

0x01 Date and time —> time, datetime, os

time

asctime

1
2
3
4
5
6
7
8
9
10
11
import time
initial_struct_time = [tm for tm in time.localtime()]      
 
# Example on how time object will cause an overflow
# Same for: Year, Month, Day, minutes, seconds 
invalid_time = (2**63)     
 
# change ‘Hours' to a value bigger than 32bit/64bit limit  
initial_struct_time[3] = invalid_time      
 
overflow_time = time.asctime(initial_struct_time)

这里边asctime()函数是将一个tuple或许是struct_time表明的时刻方式转换成类似于Sun Jun 20 23:21:05 1993的方式,能够time.asctime(time.localtime())验证一下。对time.struct_time(tm_year=2019, tm_mon=11, tm_mday=7, tm_hour=20, tm_min=58, tm_sec=57, tm_wday=5, tm_yday=311, tm_isdst=0)中每一个键值设置invalid_time可形成溢出过错。

在Python 2.6.x中报错为OverflowError: long int too large to convert to int

在Python 2.7.x中报错为

OverflowError: Python int too large to convert to C long OverflowError: signed integer is greater than maximum

自己在64位Ubuntu Python2.7.6也测验了一下,输出成果为:

[-] hour: [+] OverflowError begins at 31: signed integer is greater than maximum [+] OverflowError begins at 63: Python int too large to convert to C long ...

gmtime

1
2
3
import time
print time.gmtime(-2**64)  
print time.gmtime(2**63)

time.gmtime()为将秒数转化为struct_time格局,它会根据time_t渠道进行查验,如上代码中将秒数扩展进行测验时会发生报错ValueError: timestamp out of range for platform time_t。假如数值在-2^63到-2^56之间或许2^55到2^62之间又会引发另一种报错ValueError: (84, 'Value too large to be stored in data type')。我自己的测验成果输出如下:

[-] 2 power: [+] ValueError begins at 56: (75, 'Value too large for defined data type') [+] ValueError begins at 63: timestamp out of range for platform time_t [-] -2 power: [+] ValueError begins at 56: (75, 'Value too large for defined data type') [+] ValueError begins at 64: timestamp out of range for platform time_t

os

1
2
3
4
5
6
7
8
9
10
11
12
import os  
TESTFILE = 'temp.bin'      
 
validtime = 2**55  
os.utime(TESTFILE,(-2147483648, validtime))
stinfo = os.stat(TESTFILE) 
print(stinfo)      
 
invalidtime = 2**63
os.utime(TESTFILE,(-2147483648, invalidtime))  
stinfo = os.stat(TESTFILE) 
print(stinfo)

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106829.html

分享给朋友:

“Python安全编码攻略” 的相关文章

淘宝什么时候发货(淘宝一般都是什么时候发货)

随着12月的到来,“双12推广”也如约而至。作为2020年电商最后一次推广,三天爆发也需要提前布局。 1双十二赛马规则 过去双十一促销,很多商家说没有达到预期,甚至很多免费流量也没有改变。问题的关键其实在于赛马规则。大推广前会有额外的赛马规则分配免费流量。想要在推广期获得更确定性的流量,必须了解...

网咖加盟店排行榜(网吧加盟有什么牌子)

杰拉,网咖的话有网鱼、现在年轻人都喜欢看动漫,而网咖可以做到吃喝玩乐于一体,会业务人员跟你联系,连锁加盟要看品牌的影响力和运营能力,其实武汉的网咖还是蛮多的,有直营店。 这是选择加盟模式非常重要的地方,http/wgoldenkccn/网吧showneasp?NewsID=158网吧连锁的管理方案简...

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我 请各位帮我想想办法,开网店怎么找女装货源唔爱神起助您成就财富人生,想做微商?想开实体店?想开淘宝店?什么才是你创业的最重要步骤?货源!想在微商卖童装母婴用品纸尿裤女装,开童装女装店铺,你去哪里找最好的货源?如何找童装女装一手货源呢?...

为什么反复烧开的水会有毒?

为什么反复烧开的水会有毒? 千滚水就是在炉上沸腾了一夜或很长时间的水,还有电热水器中反复煮沸的水。这种水因煮过久,水中不挥发性物质,如钙、镁等重金属成分和亚硝酸盐因浓缩后含量很高。久饮这种水,会干扰人的胃肠功能,出现暂时腹泻、腹胀;有毒的亚硝酸盐还会造成机体缺氧,严重者会昏迷惊厥,甚至死亡。 蒸...

怎样辨别有农药残留的蔬菜?

怎样辨别有农药残留的蔬菜? 一、不吃形状、颜色异常的蔬菜: 形状:颜色正常的蔬菜,一般是常规栽培,是未用激素等化学品处理的,可以放心地食用。 “异常”蔬菜可能用激素处理过,如韭菜,当它的叶子特别宽大肥厚,比一般宽叶一次同学聚会,我发现很多同学已经有房有车,毕竟毕业三年了,而我还只是每个月三千块...

英寸和米的换算(这些单位换算你还知道吗?)

英寸和米的换算(这些单位换算你还知道吗?) 一寸等于多少厘米 更新:2016-03-28 14:07:21 查看相关文章 一寸等于多少厘米 1寸=3.3333333厘米(cm) 1英寸(in)=2.54厘米(cm) 一寸等于多少毫米 1寸=33.3333333毫米(mm) 1英寸...

评论列表

辞眸卿绡
3年前 (2022-07-03)

TESTFILE = 'temp.bin'         validtime = 2**55   os.utime(TESTFILE,(-2147483648, validtime)) stinfo

北槐羡兔
3年前 (2022-07-03)

s at 64: timestamp out of range for platform time_tos 1 2 3 4

余安雾夕
3年前 (2022-07-03)

这里边asctime()函数是将一个tuple或许是struct_time表明的时刻方式转换成类似于Sun Jun 20 23:21:05 1993的方式,能够time.asctime(time.lo

孤央俛就
3年前 (2022-07-03)

0x00 前语from:http://sector.ca/Portals/17/Presentations15/SecTor_Branca.pdf这个pdf中深化Python的中心库进行剖析,而且探讨了在两年的安全代码检查过程中,一些被认为是最要害的问题

拥嬉忆囚
3年前 (2022-07-03)

n int too large to convert to C long OverflowError: signed integer is greater

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。