- 博客(32)
- 收藏
- 关注
原创 \u202e
"\u202e"这个Unicode字符很有趣,它可以反转其他字符的显示顺序,比如字符串“你好”,给每个字符前面加上这个字符得到“\u202e你\u202e好”,它的显示结果为“好你”!利用这种特性(大部分平台支持),可以反反垃圾过滤 ...
2019-09-22 16:17:16
3596
原创 python函数里引用全局变量
python在引用变量的时候尤其要注意变量的作用域,在函数里引用不可变类型变量的时候,函数执行结束后是不会改变全局变量的值的;若想在函数里改变不可变类型全局变量的值时,引用的时候要用”global arg";对于可变变量,函数执行结束后全局变量的值是回被改变的,如下:(说明一下,python不可变数据类型:string,int ,tuple 常量;可变数据类型:dict list) 在函数里引用...
2019-08-05 14:47:18
2513
原创 python阅读代码的一个技巧
python可以用help查看内置定义的函数;对于用户自定义的函数怎么看呢?如下: 例如,定义了一个函数func1: >>> def func1(arg1,arg2): ... return arg1+arg2 通过func1.__code__(注意,“code"前后都是连续两个英文字符下划线“_”)可以查看func1的参数及属性: >>> print...
2019-08-05 14:19:01
970
原创 TypeError: a bytes-like object is required, not 'str'
python类型问题,需要的是一个字节型对象,而不是一个字符串对象,出问题的源码: def get_url_count(url): if not (url.startswith('http://') or url.startswith('https://')): return u'url地址不符合规则' d = urllib.request.urlopen(url)...
2019-08-04 14:41:31
599
原创 正则表达式-元字符
今天又学习了下正则表达式,之前也学过,但用得少基本都忘了;先直(yin)接(wei)贴(wo)图(lan),后面再修改,哈哈哈哈 _ 正则表达式元字符 注意,这里"^"只有放在字符串起始位置才起作用,放在别的地方就是一个普通字符;同理,“$"也只是在末尾才起作用; 将正则表达式编译成对象 编译标志 执行匹配 ...
2019-08-02 20:44:03
171
原创 python Object type cannot be passed to C code
在使用pcryptodome的时候,发现了一个错误: Object type <class ‘str’> cannot be passed to C code 查看raw_api.py,发现加密的时候需要的是二进制类型而不是文本类型,所以在字符串变量前加个"b"就行,问题解决! 顺便提一下,如果是从文件读出类的,文件打开模式要以’rb’打开而不是简单的’r’! open('keyf...
2019-07-15 19:11:42
6610
1
原创 windows python3.7 ModuleNotFoundError: No module named 'Crypto'
首先说一下,python3.7里的Crypto模块已经不是以前的“pycrypto”,而是“pycryptodome”。所以当在破解密码里遇到“ModuleNotFoundError: No module named ‘Crypto’”的时候,应该去配置一下python: 直接打开命令行,注意不是打开python,不用切换到python命令: 可以看到,pip开始连接和下载了; 下载完成后,去p...
2019-07-15 10:20:29
6605
原创 operator多级排序
python中如果排序要用到多个值,可以用operator进行排序,如: 对元组列表中的第二、第三个数值进行排序: >>> a=[(1,2,3),(3,4,5),(0,1,2)] 载入operator并进行排序: >>> import operator >>> a.sort(key=operator.itemgetter(1,2)) #i...
2019-07-13 19:36:46
313
原创 lambda排序
今天看到一个用于元组列表的lambda排序,先记下,后面也许会用到。 例如,用以下元组列表中的分数进行排序: >>> a=[('liming',88),('zhangliang',98),('lili',100)] 直接调用sort()会按照名字进行排序,如果要按照分数进行排序,就要用得lambda表达式了: >>> a.sort(key = lambda x...
2019-07-13 19:32:00
441
原创 python修改元组的值
python里元组属于不可变对象,是不可修改的。元组不可变使用起来有点麻烦,但保证了数据的安全,比如我们传给一个不熟悉的方法或者数据接口,确保方法或者接口不会改变我们的数据从而导致程序问题。 那问题来了,如果我们要修改元组里的值,怎么办呢?方法还是有的。 如:将元组(1,2,3)改为(1,2,4): 定义一个元组,并查看它的类型: >>> a = (1,2,3) >>...
2019-07-12 19:48:06
12744
1
原创 python文件操作
文件用得比较多的是打开、写入、读出等; 文件打开、写入及关闭 >>> a = open('a.txt','w') >>> a.write('hi.\nsecond hi.') 14 >>> a.close() 文件游标操作 连续读文本的时候,读到文件末尾继续读会输出空,因为文件游标已经移到文件末尾以后,导致读不到内容,这个时候要用se...
2019-07-11 21:43:08
169
原创 python字符串拼接的五种方法
python字符串拼接常见方法如下: 直接用“+”连接 这种方法超级丑陋,不建议用;这样也有很大的安全隐患,最简单的SQL注入都防不住 >>> a = "a" >>> b = "abcdefghijklmn" >>> c = "12346579" ”+“连接的结果: >>> print(a+b+c) aabcdefghi...
2019-07-11 21:25:01
2563
原创 图片隐写的查看
binwalk 使用binwalk扫描图片文件,看看是否嵌入了其他数据; StegSolve 使用StegSolve的各种方式查看,看看是否有隐写信息。
2019-06-29 21:39:56
1889
原创 MD5反查网站
MD5反查,通过MD5哈希值查找出原始的明文字符串,因为MD5是不可逆的,对于比较短的内容我们可以通过暴力破解的方式来还原,对于比较长的内容基本上就只能通过反查网站来实现了,常用的MD5反查网站: https://www.cmd5.com/ http://www.xmd5.com/ ...
2019-06-25 13:59:34
9378
原创 CTF编码转换
Base64编码 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。Base64编码要求把3个8位字节(3乘以8=24)转化为4个6位的字节(4乘以6=24),之后在6位的前面补两个0,形成8位一个字节的形式,Base64的尾部填充用的是“=”号,只是用来补足位数的,以四个字符为一个块,最末尾不足四个字符的用“=”号填满。 escape() JavaScript esca...
2019-06-24 17:11:58
1479
原创 CTF-PWN环境变量继承
Linux下Python通过管道给程序传递参数: python -c “print ‘A’*20” | xargs ./pwnn C环境变量参数 扩展的C语言main函数可以传递三个参数,除了argc和argv参数外,还能接受一个char**类型的envp参数。envp指向一个字符串数组,该数组存储了当前进程具体的环境变量的内容,envp的最后一个元素指向NULL,此为envp结束的标识符...
2019-06-21 20:26:17
310
原创 代码流分析与Key值获取
将寄存器或者内存位置的值置为0: xor eax,eax(异或)比mov eax,0 更省内存,效率更高; 递增和递减 Inc 用于将目的操作数递增或者递减,其作用与C 语言里的 a++类似; 递减:dec ...
2019-06-18 19:55:40
242
原创 PHP基础中相比编译性语言的不同
PHP:PHP Hypertext Preprocessor超文本与处理器,是一种开源的服务器端语言;PHP 代码在服务器上执行,而结果以纯文本返回浏览器。此外,PHP还能编写命令行脚本和桌面应用程序。 PHP四种标记及语句结束 PHP注释 这里要注意的是,放在HTML注释里的PHP代码也会被执行; PHP变量 PHP变量大小写敏感,无需声明,无需考虑类型! PHP可变变量 ...
2019-06-11 17:12:16
178
原创 CENTOS7虚拟机下搭建LAMP
本次安装全程在虚拟机中,首先要保证虚拟机网络连接,这是我在虚拟机中遇到的网络问题:虚拟机使用NAT模式: 使用NAT模式后仍不能上网的解决方法: 解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网 ...
2019-06-11 16:17:51
426
原创 GET注入--显错注入
GET-基于错误-字符型-单引号 MySQL语法问题 –后面"+"的作用? 2、单引号和双引号 双引号会把后面注释的“–”显示出来,暂时没发现其他区别
2019-05-16 16:29:21
2202
2
原创 SQL注入原理和利用
SQL注入可以手工进行,也可以通过SQL注入攻击辅助软件如HDSI、Domain、NBSI等,其实现过程如下图: SQL攻击载体 SQL攻击类型 万能密码:用于登录口的SQL注入 示例:用户名:admin ‘or’ 1=1 #– 密码随便输入 ...
2019-05-15 20:28:42
399
原创 弱口令漏洞
弱口令危害: 撞库漏洞 信息泄漏 获取权限 2、防护 有关个人信息很容易被黑客利用生成字典之类的东西; 3、个人常用密码管理 浏览器自带密码保存:如chrome和firefox 在线密码管理服务:比较著名的LastPass,支持Chrome、FireFox及IE等主流浏览器以及iPhone、Android和黑莓等移动设备,支持谷歌身份验证器(Google Authenticator),支持将...
2019-05-15 11:38:54
4343
原创 常见Web安全事件
OWASP TOP10 OWASP: open web application security project,是世界范围内的非营利性组织,关注于提高软件系统的安全性。 注入攻击 XSS攻击
2019-05-14 18:29:51
2268
原创 浏览器插件
firebug: 开源,firefox的一个扩展,能调试所有的网站语言;其最吸引人的是JS的调试功能,使用起来非常方便,而且适用广泛; Hackbar: 代码安全审计;测试SQL注入,XSS调试和网站安全性; foxyProxy:服务器代理 DVWA:绕过防火墙都可以; WebDevelop查看cookie值:可以自动生成html界面,告诉你cookie值;禁用js modify headers...
2019-05-13 20:19:34
712
原创 Python基础
特殊操作符 //**:双斜杠用作浮点除法(对结果进行四舍五入); **:双星号()表示数学中幂; !=和<>表示“不等于”比较操作符,分别是C风格和ABC/Pascal风格; and、or、not分别表示与、或、非; 变量名大小写敏感 ...
2019-05-11 17:13:17
131
原创 浏览器特性和安全策略
同源策略 同源策略是浏览器最核心也是最基本的安全功能; 同源:域名、协议、端口相同; 本域脚本只能读写本域内的资源,而无法访问其他域的资源 没有同源:cookie会变得非常不安全; 沙盒框架 其显示的内容会通过沙盒来表示,沙盒框架的限制是通过iframe; flash安全沙箱 两条基本原则: 位于同一沙箱中的资源始终可以相互访问; 远程沙箱中的swf始终不能访问本地文...
2019-05-09 17:02:36
509
原创 Web安全基础学习笔记
1、Web不是互联网,是互联网提供的服务之一; 2、web工作流程 3、web常见危害 Web2.0:从1.0的危害服务器到更多的危害客户端; Web1.0: SQL注入;文件上传;挂马;暗链等; Web2.0: XSS; CSRF;逻辑漏洞;钓鱼;劫持; 4、发展史 只记得第一款多点触控浏览器:2009年火狐3.5; 5、浏览器工作原理 一定要看的: http://taligarsiel.com...
2019-05-08 21:07:27
276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅