- 博客(42)
- 收藏
- 关注
原创 代码审计初识
在获得目标项目源码后,要先确认项目的开发框架;然后阅读项目的开发文档,从开发文档里能获得很多有用的信息。信息搜集目标:从传入的变量入手,比如搜索$id这个是存储了请求的具体参数,被函数接收和调用。这个参数没经过过滤,在函数中调用就跟踪这个函数有被哪些其他函数引用,或者这个不安全参数在哪些函数里被调用。代码审计基础知识项目审计首先要明确它的开发框架。
2025-01-24 18:10:33
697
原创 Python-存储数据-Thu-Fri
一般python会把用户输入的数据存储在列表或字典里。json模块可以把这些数据转存到文件里,json格式的文件也可以供其他语言的程序使用。在文件里找到用户名,提示欢迎回归,如果没找到文件就让用户输入用户名,提示已存好用户名。我们先用json.dump()来存储数据,这个函数接受俩实参,分别是需要存储的数据结构和可用于存储的文件对象。重构 greet_user(),分离出从文件获取用户名的代码。继续重构greet_user(),分离提示新用户输入的功能。再编写一个读取文件载入数据的程序。
2024-12-20 21:23:28
249
原创 Python-异常-Tue-Tur
如果程序没有对异常对象进行处理,程序就会报错,停止运行。在有输入功能的程序中如果有对异常进行处理,可以避免程序崩溃,提醒用户正常输入。出现报错的代码行是除法运算代码,应该放进try-except代码块,依赖try代码块成功执行的代码则放进else代码块里。在对文件进行操作时可能会出现文件名错误文件不存在等,让程序报错的情况。如果是多个文件需要计算单词数。把上面的代码移到count_words函数里,然后调用这个函数来计算文件包含的单词数。程序里的pass相当于一个占位符,当然你也可以用功能代码替换它。
2024-12-19 22:41:56
541
原创 Python-从文件中读取数据-Sat-Sun
使用open()函数打开文件,返回一个文件对象,关键字with可在恰当时候关闭文件。调用read()读取整个文件对象。调用readlines()逐行读取文件对象,返回一个以各行数据为元素的列表。将文件读取返回的结果存储在变量里,可以在with代码块外使用文件的内容。
2024-12-15 22:46:53
498
原创 Python-继承-Mon-Wed
子类在类名括号里指定父类名,在init方法调用super()将父类属性初始化从而继承父类的属性和方法;子类通过使用与父类相同的方法名来重写父类的方法;以及在init函数体内将实例存储在初始化变量里达到用实例作为属性的目的。
2024-12-04 21:29:57
282
原创 Python-使用类和实例-Sun-Mon
主要介绍了在__init__方法里给属性设置默认值,以及修改属性值的三种方法。分别是直接使用实例访问属性修改,调用方法修改,使用方法让属性的值递增。
2024-12-02 16:05:44
339
原创 DVWA修改文件名后依然报错
修改成功后就能打开网站了,网站运行成功时,config文件夹里包含有两个文件,分别是congfig.inc.php。此时再将congfig.inc.php.dist改成config.inc.php就可以了。在config/config.inc.php目录,点击菜单栏的查看,勾选文件扩展名。是因为隐藏了后缀名,真正的后缀名dist,没有被删除。
2024-11-29 14:18:19
213
原创 Python内置函数-Tue
函数作用min()列表最小值max()最大值,记得输入时转换成整数sum()列表求和bin()返回十进制数的二进制数hex()返回十进制数的十六进制数ord()返回字符的ASCII数pow(a,b)幂运算a**babs()绝对值list.count(a)返回列表中a出现的次数
2024-11-19 16:16:21
140
原创 Python-将函数存储在模块中-Fri-Fri
模块时存储了函数的独立文件,在我们想要使用这些函数的时候,就需要在文件头导入模块。python会以我们看不见的方式将模块里的函数复制到文件里。若只导入特定函数,在调用模块内函数时,可以直接调用,不需要再函数前指明模块名。不建议使用,有可能你创建的函数名和导入的模块内函数名存在相同的情况,这就会覆盖函数。首先创建一个pizza.py文件,一个making_pizza.py文件。4.形参太多,可以函数的左括号内按换行加两次tab键。的方式,告诉python此时你要调用的是哪个模块。调用模块内函数时,以。
2024-11-08 15:30:44
403
原创 Python-传递任意数量实参-Mon-Fri
的形式,在形参列表设置形参。它表示在python中创建一个空字典,并把传入的多余实参以键值对的方式存储在这个空字典内。和其他形参一起使用时,最好将设置空元组的形参放在最后,否则就会报错缺少参数。这告诉python设置一个空元组,将传入的值存在里面。当我们不知道函数调用准备传入多少个实参的时候,可以用。在实参数量未知的情况下,可以将形参设置成空元组。
2024-11-08 11:08:26
205
原创 Python-传递列表-Wed-Mon
通过形参向函数传递列表,在函数中修改列表的方法,和在实参中使用列表切片表示法,给函数传递副本,从而禁止函数修改列表。
2024-10-28 22:35:13
377
原创 SQL-多表连接
搜索函数,可以使用多个when …来搜索符合条件的行然后分配。a ∩ b ,只显示两张表相匹配的行,不匹配不显示。a ∩ b∪a,显示两表匹配行,显示左表a所有行。a ∩ b∪b,显示两表匹配行,显示右表匹配行。a ∪ b,对a并b结果集显示不除重。a ∪ b,对a并b结果集除重显示。
2024-10-28 22:05:07
205
原创 Python-返回值-Sun-Wed
给中间名设置默认值为空字符串,当中间名为空时进入else语句。使用默认值和条件语句,让age成为可选择是否输入项。字典和列表都可以作为返回值,返回给函数。在循环中加入能随时退出的条件语句。返回值就是函数体内执行完功能代码。
2024-10-23 14:28:01
272
原创 Python-传递实参-Tur-Sun
拥有默认值的形参通常放在形参列表的末尾,若是使用位置实参却没有设置默认值,在位置实参与形参数量不等的情况下,形参没有值,程序就会出错。关键字实参中,我们以名称-值的形式指明每个形参要存储的值,Python就能够很好的将 每个实参与形参对应,不需要再考虑顺序。有多个形参时,实参顺序的设置需要和形参相对应,这叫位置实参。也可以在设置实参时,使用变量名与值组合的形式,关键字实参。默认值是当没有设置实参,函数被调用形参使用的值。位置实参,关键字实参和默认值可以混合使用。
2024-10-20 10:45:04
356
原创 嵌套 Tue Sun
循环遍历字典users字典,把键存储在变量username,子字典作为值存储在user_info。当需要为多个用户创建字典时,这些存放在列表的字典结构相同,可以遍历或以相同的方式处理字典。先建立一个字典,把用户名字作为字典的键,用户作为值,用户信息放在子字典内,要用相同的结构来设置用户信息。列表和字典如果嵌套层级太多,就是字典套列表再套字典这样的情况,最好考虑再考虑更好的解决办法。方法将新增的字典放到列表内,使用列表的切片输出列表的前5个字典。只需要将创建好的字典名存入列表就可以实现字典列表。
2024-05-08 09:53:08
244
原创 Python学习
使用print()输出,在字符串的引号前添加“f”来设置格式,再将变量插入花括号内,变量使用“title()”方法将单词的首字母大写输出。该字符串的适用范围是Python3.6及以后的新版本,3.6前的版本只能使用“format()”方法。f(format)字符串,在引号前加“f”,将变量插入花括号内,实现设置字符串的格式。把要输出的信息赋给一个变量,当print()函数调用时就会简单许多。永久删除右边空格:需要与将最新结果与变量关联。语法高亮是一种很好的帮助发现语法错误的工具。常见的引号引起的错误。
2023-12-01 20:00:27
75
1
原创 Python学习 Thu
语句后每行缩进的代码都是循环的一部分,每次给临时变量赋值都会将后面所有代码执行一次。最后一行忘记缩进的代码只执行了一次,程序正常运行,并未报错。这种逻辑错误无法检出。输出的最后一句没有缩进,因此它不是循环的一部分。没有缩进,只执行一次。逻辑错误,不必要的缩进导致最后一行被当成循环的一部分,重复执行。读取列表第二个元素执行相同操作直到读取完整个列表元素。当我们在没有循环的地方多打了空格时,程序会报错提醒。循环后的语句且属于循环的部分一定要记得缩进。*注意指定的临时变量名要有意义。将列表中的每个元素打印出来。
2023-11-30 20:57:33
77
原创 Python学习 Tue Wed
要注意,只有在所有元素的首字母都是小写的情况下,以上排序才适用。函数只能在调用到时临时排序,不对源列表产生影响。连续使用方可恢复原来顺序。按元素首字母顺序排列。
2023-11-28 21:19:04
71
原创 Python学习 Mon
也可以先创建一个空列表,再使用“append()”将元素附加进去。pop()方法类似于剪切操作,当将元素从列表删除后接着使用它。使用方法“insertI()”,后面的元素右移。前提是知道要删除的元素的具体位置。1.末尾附加(append)指定列表名,索引,新值。2. pop()方法。
2023-11-27 21:16:31
98
原创 Python学习
名称通常以复数(在英语里数量在两个或两个以上的名词形式在单词末尾加上s或es)命名,用“[ ]”括起元素,元素间用“,”隔开。访问列表元素,要先告诉Python列表名称,再将要访问的元素在列表的位置(即索引)放到“[ ]”内即可。返回最后一个元素的索引是-1,倒数第二个是-2,以此类推。列表:按一定顺序排列的元素组成。
2023-11-26 21:25:51
82
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅