[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fQmWocQfgUNdst0t7MPGPzUoeFk9rsDPK97ZNPkcUrjo":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":21,"download_link":22,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25,"vulnerabilities":26,"developer":27,"crawl_stats":24,"alternatives":32,"analysis":33,"fingerprints":184},"qqconnect","QQ登录","1.0.1","qlwz","https:\u002F\u002Fprofiles.wordpress.org\u002Fqlwz\u002F","\u003Cp>一个直接使用QQ登录的WP的插件\u003C\u002Fp>\n","一个直接使用QQ登录的WP的插件",10,6867,0,"2012-03-18T03:39:00.000Z","3.3.2","3.0.0","",[19,7,4,20],"94qing-com","qq%e7%99%bb%e5%bd%95","http:\u002F\u002Fwww.94qing.com\u002Fqqconnect.html","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fqqconnect.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":28,"total_installs":11,"avg_security_score":23,"avg_patch_time_days":29,"trust_score":30,"computed_at":31},1,30,84,"2026-04-04T21:57:26.239Z",[],{"attackSurface":34,"codeSignals":77,"taintFlows":112,"riskAssessment":172,"analyzedAt":183},{"hooks":35,"ajaxHandlers":73,"restRoutes":74,"shortcodes":75,"cronEvents":76,"entryPointCount":13,"unprotectedCount":13},[36,41,45,50,54,57,61,65,69],{"type":37,"name":38,"callback":38,"file":39,"line":40},"action","admin_menu","qqconnect.php",24,{"type":37,"name":42,"callback":43,"priority":28,"file":39,"line":44},"init","qq_init",200,{"type":37,"name":46,"callback":47,"priority":48,"file":39,"line":49},"wp_login","qqconnect_wp_login",120,201,{"type":37,"name":51,"callback":52,"file":39,"line":53},"login_form","qqconnect_login_form",202,{"type":37,"name":55,"callback":52,"file":39,"line":56},"comment_form",203,{"type":37,"name":58,"callback":59,"file":39,"line":60},"personal_options","qqconnect_personal_options",204,{"type":37,"name":62,"callback":63,"file":39,"line":64},"register_form","qqconnect_show_password_field",205,{"type":37,"name":66,"callback":67,"priority":48,"file":39,"line":68},"register_post","qqconnect_check_fields",206,{"type":37,"name":70,"callback":71,"file":39,"line":72},"user_register","qqconnect_register_extra_fields",207,[],[],[],[],{"dangerousFunctions":78,"sqlUsage":79,"outputEscaping":82,"fileOperations":110,"externalRequests":13,"nonceChecks":13,"capabilityChecks":28,"bundledLibraries":111},[],{"prepared":80,"raw":13,"locations":81},2,[],{"escaped":13,"rawEcho":83,"locations":84},12,[85,88,90,92,94,96,98,100,102,104,106,108],{"file":39,"line":86,"context":87},59,"raw output",{"file":39,"line":89,"context":87},63,{"file":39,"line":91,"context":87},67,{"file":39,"line":93,"context":87},318,{"file":39,"line":95,"context":87},319,{"file":39,"line":97,"context":87},320,{"file":39,"line":99,"context":87},327,{"file":39,"line":101,"context":87},328,{"file":39,"line":103,"context":87},329,{"file":39,"line":105,"context":87},336,{"file":39,"line":107,"context":87},348,{"file":39,"line":109,"context":87},350,4,[],[113,137,154],{"entryPoint":114,"graph":115,"unsanitizedCount":28,"severity":136},"qq_init (qqconnect.php:175)",{"nodes":116,"edges":132},[117,122,126],{"id":118,"type":119,"label":120,"file":39,"line":121},"n0","source","$_GET['code']",183,{"id":123,"type":124,"label":125,"file":39,"line":121},"n1","transform","→ qq_callback()",{"id":127,"type":128,"label":129,"file":39,"line":130,"wp_function":131},"n2","sink","file_get_contents() [SSRF\u002FLFI]",95,"file_get_contents",[133,135],{"from":118,"to":123,"sanitized":134},false,{"from":123,"to":127,"sanitized":134},"medium",{"entryPoint":138,"graph":139,"unsanitizedCount":28,"severity":153},"qqconnect_wp_login (qqconnect.php:246)",{"nodes":140,"edges":150},[141,144,146],{"id":118,"type":119,"label":142,"file":39,"line":143},"$_POST",253,{"id":123,"type":124,"label":145,"file":39,"line":143},"→ isbing()",{"id":127,"type":128,"label":147,"file":39,"line":148,"wp_function":149},"get_var() [SQLi]",135,"get_var",[151,152],{"from":118,"to":123,"sanitized":134},{"from":123,"to":127,"sanitized":134},"high",{"entryPoint":155,"graph":156,"unsanitizedCount":80,"severity":153},"\u003Cqqconnect> (qqconnect.php:0)",{"nodes":157,"edges":167},[158,159,160,161,163,165],{"id":118,"type":119,"label":120,"file":39,"line":121},{"id":123,"type":124,"label":125,"file":39,"line":121},{"id":127,"type":128,"label":129,"file":39,"line":130,"wp_function":131},{"id":162,"type":119,"label":142,"file":39,"line":143},"n3",{"id":164,"type":124,"label":145,"file":39,"line":143},"n4",{"id":166,"type":128,"label":147,"file":39,"line":148,"wp_function":149},"n5",[168,169,170,171],{"from":118,"to":123,"sanitized":134},{"from":123,"to":127,"sanitized":134},{"from":162,"to":164,"sanitized":134},{"from":164,"to":166,"sanitized":134},{"summary":173,"deductions":174},"The \"qqconnect\" v1.0.1 plugin exhibits a mixed security posture. On one hand, it demonstrates good practices by avoiding dangerous functions, using prepared statements for all SQL queries, and having no known CVEs. The attack surface also appears minimal with no AJAX handlers, REST API routes, or shortcodes exposed without authentication checks, and a single capability check present. However, significant concerns arise from the code signals, particularly the complete lack of output escaping for all 12 identified outputs. This is a critical flaw that can lead to cross-site scripting (XSS) vulnerabilities.\n\nFurthermore, the taint analysis reveals two high-severity flows with unsanitized paths. While the specific nature of these flows isn't detailed, unsanitized paths often indicate potential for directory traversal or other file-related vulnerabilities if coupled with file operations. The presence of file operations, while not inherently bad, amplifies this concern. The lack of nonce checks on any entry points is also a notable weakness, potentially allowing for cross-site request forgery (CSRF) if these entry points were to become exploitable.\n\nThe vulnerability history is a strong positive, showing no past CVEs, which suggests a generally stable codebase. However, the presence of high-severity taint flows and the complete lack of output escaping in the current version outweigh this. The plugin's strengths lie in its clean SQL and minimal exposed attack surface, but the critical output escaping issue and high-severity taint flows present immediate and significant risks that need to be addressed.",[175,178,180],{"reason":176,"points":177},"100% of outputs unescaped",8,{"reason":179,"points":83},"2 high severity taint flows",{"reason":181,"points":182},"0 Nonce checks",5,"2026-03-17T01:44:17.985Z",{"wat":185,"direct":190},{"assetPaths":186,"generatorPatterns":187,"scriptPaths":188,"versionParams":189},[],[],[],[],{"cssClasses":191,"htmlComments":195,"htmlAttributes":196,"restEndpoints":200,"jsGlobals":201,"shortcodeOutput":202},[192,193,194],"wrap","form-table","settings-error",[],[197,198,199],"id=\"appid\"","id=\"appkey\"","id=\"callback\"",[],[],[]]