扬帆,起航php入门

admin 2022年12月9日18:44:06评论80 views字数 2615阅读8分43秒阅读模式

php基础教程

https://www.runoob.com/php/php-tutorial.htmlhttps://www.w3cschool.cn/php/

phpstorm使用

https://blog.51cto.com/u_15790101/5673519https://blog.csdn.net/william_n/article/details/100710827https://www.kancloud.cn/ervinhua/phpstorm/441821

phpdebug

xdebug2 https://blog.csdn.net/BaiScorpio/article/details/125340532xdebug3 http://t.zoukankan.com/yunmuq-p-15476126.html

phpmvc

直接上手thinkphp,这一块先空缺后面专门补

mvc是一种设计思念和模型,直接上手框架去熟悉https://www.kancloud.cn/manual/thinkphp5

php漏洞

漏洞类型可以参考,这里列举几个可能碰到比较多的(其实是因为我也还没学到这里来)

https://github.com/bowu678/php_bugshttps://github.com/hongriSec/PHP-Audit-Labs
靶场 https://github.com/zhuifengshaonianhanlu/pikachuhttps://github.com/bowu678/php_bugsphp的函数非常多,所以碰到不熟悉的函数可以根据函数名字去猜测对应的功能,或者直接查手册看看传入的参数和功能的作用,进行进一步的利用。以下列举的都是常用的,肯定不全。

php变量覆盖

搜索函数 extract()  parse_str()  import_request_variables() 搜索字符串 $$参考 https://blog.csdn.net/qq_42307546/article/details/125010404理解靶场的payload原因 我们传入的变量被解析,flag可以为任意不存在的内容,此时$content返回为空,然后我们传入的$shiyan也为空,满足逻辑,就echo出了flag

扬帆,起航php入门

sql注入

可以直接全局搜索%$ '$ .$  =$ 等关键字 php不像java 字符串拼接为+,所以比较灵活,可以根据作者的代码风格来进行搜索

xss

全局搜索{$ echo 等关键字,也是要根据框架去搜索,看看是否直接传递到了html中,或者直接返回了前端未处理的结果,不太好搜白盒非项目需求也不太关注,理解原理即可

file

文件包含 搜索require include文件读取 fread fgetc fgets fgetss feof()等文件上传&写入  move_uploaded_file fwrite文件删除 unlink rmdir文件常用大杂烩 include、require、include_once、require_once、highlight_file 、show_source 、readfile 、file_get_contents 、fopen 、file

命令执行&&代码执行

php的命令执行函数很多,参考https://www.bbsmax.com/A/nAJvY2gQzr/http://t.zoukankan.com/hookjoy-p-2964153.html等,其他还有,不熟悉的碰到了多查查手册,百度也行

ssrf

搜索 curl_exec file_get_contents curl fsockopen()等

xxe

搜索 simplexml_load_string

ldap注入

参考 https://blog.csdn.net/qq_52643498/article/details/125490755

反序列化

__sleep __wakeup 等魔术方法造成的漏洞搜索unserialize,serialize,json_encode,json_decode看参数是否可控,可以参考 https://www.freebuf.com/articles/web/221213.html 反序列化漏洞入门https://cjjkkk.github.io/phpUnserialize/ 反序列化参考serialize魔法方法调用__sleep()unserialize__wakeup()tipspublic 反序列化后长度不变protected 反序列化后长度+3private 反序列化后长度+2绕过__wakeup() (1)序列化字符串表示对象属性个数的值大于真实个数的属性获取反序列化的类的字符串$a=new class()$b = serialize($a);print_r($b);这一块不深说了 后续会有分析反序列化漏洞 多分析几次就会了
实操一下靶场的反序列化
简单来说,就说通过反序列化后调用__construct方法为test进行赋值,然后将其定向到页面中,造成xss攻击。

扬帆,起航php入门

php伪协议

参考https://blog.csdn.net/qq_45554491/article/details/127971872基于include(),include_once()的利用file:// — 访问本地文件系统http:// — 访问 HTTP(s) 网址ftp:// — 访问 FTP(s) URLsphp:// — 访问各个输入/输出流(I/O streams)zlib:// — 压缩流data:// — 数据(RFC 2397)glob:// — 查找匹配的文件路径模式phar:// — PHP 归档ssh2:// — Secure Shell 2rar:// — RARogg:// — 音频流expect:// — 处理交互式的流

tips

var_dump($x); 返回x的类型和值 php数字转字符串 %00123 可用于绕过is_numericfasle比较思路(可以传入与参数不同的类型查看,是否直接返回false,参考靶场sha()的绕过)php md5存在弱类型比较(==的情况)

参考链接

https://www.yuque.com/burpheart/phpaudit/php-shen-ji-ji-chu_cui-ruo-han-shu-su-cha-biao

原文始发于微信公众号(e0m安全屋):扬帆,起航php入门

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月9日18:44:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   扬帆,起航php入门http://cn-sec.com/archives/1454575.html

发表评论

匿名网友 填写信息