WordPress Browser Rejector 插件"wppath"远程文件包含漏洞

漏洞版本:
WordPress Browser Rejector 2.x
漏洞描述:
Browser Rejector可以提示或阻止用户使用旧版本的Web浏览器。

Browser Rejector 2.10及之前版本没有正确验证wp-content/plugins/browser-rejector/rejectr.js.php内的"wppath" GET参数,可被利用包含本地或外部的任意文件。

转载于:https://www.cnblogs.com/security4399/archive/2013/01/11/2855941.html

以下是使用PCL库进行汉明距离特征点匹配的示例代码: ```c++ #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/features/fpfh.h> #include <pcl/features/normal_3d.h> #include <pcl/registration/correspondence_estimation.h> #include <pcl/registration/correspondence_rejection_features.h> #include <pcl/registration/correspondence_rejection_sample_consensus.h> #include <pcl/registration/icp.h> int main(int argc, char** argv) { // Load the point clouds pcl::PointCloud<pcl::PointXYZ>::Ptr source_cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZ>::Ptr target_cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::io::loadPCDFile<pcl::PointXYZ>("source.pcd", *source_cloud); pcl::io::loadPCDFile<pcl::PointXYZ>("target.pcd", *target_cloud); // Compute surface normals and FPFH features pcl::PointCloud<pcl::Normal>::Ptr source_normals(new pcl::PointCloud<pcl::Normal>); pcl::PointCloud<pcl::Normal>::Ptr target_normals(new pcl::PointCloud<pcl::Normal>); pcl::search::KdTree<pcl::PointXYZ>::Ptr search_tree(new pcl::search::KdTree<pcl::PointXYZ>); pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> normal_estimator; normal_estimator.setInputCloud(source_cloud); normal_estimator.setSearchMethod(search_tree); normal_estimator.setRadiusSearch(0.03); normal_estimator.compute(*source_normals); normal_estimator.setInputCloud(target_cloud); normal_estimator.compute(*target_normals); pcl::FPFHEstimation<pcl::PointXYZ, pcl::Normal, pcl::FPFHSignature33> fpfh_estimator; fpfh_estimator.setInputCloud(source_cloud); fpfh_estimator.setInputNormals(source_normals); fpfh_estimator.setSearchMethod(search_tree); fpfh_estimator.setRadiusSearch(0.05); pcl::PointCloud<pcl::FPFHSignature33>::Ptr source_features(new pcl::PointCloud<pcl::FPFHSignature33>); pcl::PointCloud<pcl::FPFHSignature33>::Ptr target_features(new pcl::PointCloud<pcl::FPFHSignature33>); fpfh_estimator.compute(*source_features); fpfh_estimator.setInputCloud(target_cloud); fpfh_estimator.setInputNormals(target_normals); fpfh_estimator.compute(*target_features); // Compute correspondences between the feature clouds pcl::registration::CorrespondenceEstimation<pcl::FPFHSignature33, pcl::FPFHSignature33> correspondence_estimator; correspondence_estimator.setInputSource(source_features); correspondence_estimator.setInputTarget(target_features); pcl::CorrespondencesPtr correspondences(new pcl::Correspondences); correspondence_estimator.determineCorrespondences(*correspondences); // Reject correspondences based on feature distance pcl::registration::CorrespondenceRejectorFeatures<pcl::FPFHSignature33> correspondence_rejector_features; correspondence_rejector_features.setInputSource(source_features); correspondence_rejector_features.setInputTarget(target_features); correspondence_rejector_features.setThreshold(0.2); correspondence_rejector_features.getRemainingCorrespondences(*correspondences); // Reject correspondences based on RANSAC pcl::registration::CorrespondenceRejectorSampleConsensus<pcl::PointXYZ> correspondence_rejector_ransac; correspondence_rejector_ransac.setInputSource(source_cloud); correspondence_rejector_ransac.setInputTarget(target_cloud); correspondence_rejector_ransac.setInlierThreshold(0.01); correspondence_rejector_ransac.setMaximumIterations(10000); correspondence_rejector_ransac.setInputCorrespondences(correspondences); correspondence_rejector_ransac.getRemainingCorrespondences(*correspondences); // Compute transformation matrix using ICP pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> icp; icp.setInputSource(source_cloud); icp.setInputTarget(target_cloud); icp.setMaxCorrespondenceDistance(0.05); icp.setMaximumIterations(100); icp.setTransformationEpsilon(1e-8); icp.setEuclideanFitnessEpsilon(1e-6); icp.setInputCorrespondences(correspondences); pcl::PointCloud<pcl::PointXYZ>::Ptr transformed_cloud(new pcl::PointCloud<pcl::PointXYZ>); icp.align(*transformed_cloud); // Print the transformation matrix std::cout << "Transformation matrix:\n" << icp.getFinalTransformation() << std::endl; return 0; } ``` 其,source.pcd 和 target.pcd 分别是需要匹配的点云文件,0.03、0.05、0.2、0.01、0.05、100 和 1e-8、1e-6 分别是用于计算特征和匹配的参数,可以根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值