扬帆起航电子商务有限公司(扬帆,起航php入门)

wufei123 发布于 2023-11-13 阅读(592)

php全套教程

php基础教程https://www.runoob.com/php/php-tutorial.htmlhttps://www.w3cschool.cn/php/phpstorm使用httPHPps://blog.51cto.com/u_15790101/5673519

https://blog.csdn.net/william_n/article/details/100710827httpsPHP://www.kancloud.cn/ervinhua/phpstorm/441821

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

phpmvc直接上手thinkphp,这一块先空缺后面专门补PHPmvc是一种设计思念和模型,直接上手框架去熟悉https://www.kancloud.cn/manual/thinkphp5php漏洞漏洞类型可以参考,这里列举几个可能碰到比较多的(其实是因为我也还PHP没学到这里来)

https://github.com/bowu678/php_bugshttps://github.com/hongriSec/PHP-Audit-Labs靶场 https://githPHPub.com/zhuifengshaonianhanlu/pikachu

https://github.com/bowu678/php_bugsphp的函数非常多,所以碰到不熟悉的函数可以根据函数名字去PHP猜测对应的功能,或者直接查手册看看传入的参数和功能的作用,进行进一步的利用。

以下列举的都是常用的,肯定不全php变量覆盖搜索函数 extract() parse_str() import_requesPHPt_variables() 搜索字符串 $$参考 https://blog.csdn.net/qq_42307546/article/details/125010404

理解靶场的payload原因 我PHP们传入的变量被解析,flag可以为任意不存在的内容,此时$content返回为空,然后我们传入的$shiyan也为空,满足逻辑,就echo出了flag

sql注入可以直接全局搜索%$ $ .$ =$ 等PHP关键字 php不像java 字符串拼接为+,所以比较灵活,可以根据作者的代码风格来进行搜索xss全局搜索{$ echo 等关键字,也是要根据框架去搜索,看看是否直接传递到了html中,或者直接返回了前PHP端未处理的结果,不太好搜白盒非项目需求也不太关注,理解原理即可

file文件包含 搜索require include文件读取 fread fgetc fgets fgetss feof()等文件上传&写PHP入 move_uploaded_file fwrite文件删除 unlink rmdir

文件常用大杂烩 include、require、include_once、require_once、highliPHPght_file 、show_source 、readfile 、file_get_contents 、fopen 、file

命令执行&&代码执行php的命令执行函数很多,参考https://www.PHPbbsmax.com/A/nAJvY2gQzr/http://t.zoukankan.com/hookjoy-p-2964153.html

等,其他还有,不熟悉的碰到了多查查手册,百度也行ssrf搜索 PHPcurl_exec file_get_contents curl fsockopen()等xxe搜索 simplexml_load_string

ldap注入参考 https://blog.csdn.nPHPet/qq_52643498/article/details/125490755反序列化__sleep __wakeup 等魔术方法造成的漏洞搜索unserialize,serialize,json_PHPencode,json_decode看参数是否可控,可以参考

https://www.freebuf.com/articles/web/221213.html 反序列化漏洞入门https://cjjkkPHPk.github.io/phpUnserialize/ 反序列化参考

serialize魔法方法调用__sleep()unserialize__wakeup()tipspublic 反序列化后长度不变pPHProtected 反序列化后长度+3private 反序列化后长度+2

绕过__wakeup() (1)序列化字符串表示对象属性个数的值大于真实个数的属性获取反序列化的类的字符串$a=new classPHP()$b = serialize($a);print_r($b);这一块不深说了 后续会有分析反序列化漏洞 多分析几次就会了

实操一下靶场的反序列化简单来说,就说通过反序列化后调用__constructPHP方法为test进行赋值,然后将其定向到页面中,造成xss攻击。

php伪协议参考https://blog.csdn.net/qq_45554491/article/details/127971872基于PHPinclude(),include_once()的利用file:// — 访问本地文件系统

http:// — 访问 HTTP(s) 网址ftp:// — 访问 FTP(s) URLsphp:// — PHP访问各个输入/输出流(I/O streams)zlib:// — 压缩流data:// — 数据(RFC 2397)

glob:// — 查找匹配的文件路径模式phar:// — PHP 归档ssh2:PHP// — Secure Shell 2rar:// — RARogg:// — 音频流expect:// — 处理交互式的流

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

php md5存在弱类型比较(==的情况)参考链接httpPHPs://www.yuque.com/burpheart/phpaudit/php-shen-ji-ji-chu_cui-ruo-han-shu-su-cha-biao

亲爱的读者们,感谢您花时间阅读本文PHP。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

大众 新闻51247