XFF注入攻击和代码分析技术

XFF注入攻击和代码分析技术-使者云
XFF注入攻击和代码分析技术
此内容为付费阅读,请付费后查看
500积分
付费阅读
已售 1
------正文内容展示,开始汲取新知识啦------

XFF注入攻击

X-Forwarded-For简称XFF头,它代表客户端真实的IP地址,通过修改X-Forwarded-For的值可以伪造客户端IP地址,在请求头中将X-Forwarded-For设置为127.0.0.1,然后访问该URL,页面返回正常,如图1所示。

图片[1]-XFF注入攻击和代码分析技术-使者云

    • 2

将X-Forwarded-For设置为127.0.0.1’,再次访问该URL,页面返回MySQL的报错信息,结果如图2所示。

图片[2]-XFF注入攻击和代码分析技术-使者云

    • 图3

将X-Forwarded-For分别设置为127.0.0.1′ and 1=1#和127.0.0.1′ and 1=2#,再次访问该URL,结果分别如图3和图4所示。

图片[3]-XFF注入攻击和代码分析技术-使者云

    • 图3

图片[4]-XFF注入攻击和代码分析技术-使者云

    • 图4

通过页面的返回结果,可以判断出该地址存在SQL注入漏洞,接着使用order by判断表中的字段数量,最终测试出数据库中存在4个字段,尝试使用Union查询注入方法,语法是X-Forwarded-for:-1′ union select 1,2,3,4#,如图5所示。

    • 图5

图片[5]-XFF注入攻击和代码分析技术-使者云

接着,使用Union注入方法完成此次注入。

XFF注入代码分析

PHP中的getenv()函数用于获取一个环境变量的值,类似于SERVER_ENV,返回环境变量对应的值,如果环境变量不存在,则返回FALSE。

使用以下代码即可获取客户端IP地址。程序先判断是否存在HTTP头部参数HTTP_CLIENT_IP,如果存在,则赋给$ip;如果不存在,则判断是否存在HTTP头部参数

HTTP_X_FORWARDED_FOR。如果存在,则赋给ip;如果不存在,则将HTTP头部参数REMOTEADDR赋给ip。

接下来,将$ip拼接到select语句中,然后将查询结果输出到界面上。

由于HTTP头部参数是可以伪造的,所以可以添加一个头部参数CLIENT_IP或X_FORWARDED_FOR。

当设置X_FORWARDED_FOR =-1' union select 1,2,3,4%23时,执行的SQL语句如下:

此时,SQL语句可以分为select * from winfo where `ip`='-1'union select 1,2,3,4这两条,利用第二条语句(Union查询)就可以获取数据库中的数据。

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞960赞赏 分享
抢沙发

请登录后发表评论

    暂无评论内容