说下我的第一次渗透吧
为了模拟,我在本地搭建了服务器环境,展示一个正常网站如何被攻击。
首先修改电脑本地host文件。改了之后就可以用http://test.com虚拟域名访问本地文件了。文件目录在“C:WindowsSystem32driversetc”
网站目录很简单,如下:
在网站入口中,引用了数据库配置文件,然后输出一句话来模拟网站首页。
在数据库配置文件中,我参照当前流行的框架ThinkPHP数据库配置文件,返回一个数据库基本信息数组,包括数据库的端口和密码。
接下来就是我们的重头戏,黑客后门文件。
你可能会觉得,就这?就这几行代码能干什么?
我们访问一下我们的网站
网站可以正常访问,没有任何问题
访问一下黑客文件,好像也没有问题
现在黑客已经知道你后台php版本,装了那些插件,数据库用的是什么数据库
可以跳转到 百度了,这表示,黑客已经搭好了一个运行代码的环境。现在通过你的网站,已经可以随便写一行代码都可以执行了
已经把你的密码什么的都弄到手了,你的网站什么数据,都可以修改了,怕不怕。甚至可以“删库跑路”!!
看:1.txt文件被删除了
这就可以删除你网站上的文件了
不知道你有没有听过这么一句话,没有绝对安全的系统
这个世界上没有绝对安全的防御,只要你想
就是时间和成本的问题了
关于网站入侵,简单分享到这里,如果对这方面技术感兴趣的小伙伴,可以参考下图找我交流
public void calc() {
articleWordMap = new HashMap<String, Integer>();
//读取文章
calcFreauency(articleWordMap,new File("/home/geekgao/朴素贝叶斯/500trainblogxml/positiveout/1377331000713.txt"));
keepEmotionWord(articleWordMap);
double allBackPos = 1;
double allBackNeg = 1;
double allBackUns = 1;
Set<String> word = articleWordMap.keySet();
for (Iterator it = word.iterator();it.hasNext();) {
String tmp = (String)it.next();
double back;
if (backPositive.containsKey(tmp)) {
back = backPositive.get(tmp);
allBackPos = Math.pow(back,articleWordMap.get(tmp)) * allBackPos;
}
if (backNegative.containsKey(tmp)) {
back = backNegative.get(tmp);
allBackNeg= Math.pow(back,articleWordMap.get(tmp)) * allBackNeg;
}
if (backUnsure.containsKey(tmp)) {
back = backUnsure.get(tmp);
allBackUns = Math.pow(back,articleWordMap.get(tmp)) * allBackUns;
}
}
double resultPositive;
double resultNegative;
double resultUnsure;
resultPositive = priorPositive * allBackPos;
resultNegative = priorNegative * allBackNeg;
resultUnsure = priorUnsure * allBackUns;
System.out.println("积极:" + resultPositive);
System.out.println("消极:" + resultNegative);
System.out.println("不确定:" + resultUnsure);
}
//解析出文章中的词语,并且映射上频数
public void calcFreauency(Map<String,Integer> wordMap,File article) {
try {
//取得dom4j的解析器
SAXReader reader = new SAXReader();
//取得代表文档的Document对象
Document document = reader.read(article);
//取得根结点
Element root = document.getRootElement();//取得根节点<document>
List<?> list1 = root.elements();//取得<document>的子节点
List<?> sentence_list = ((Element)list1.get(0)).elements();//<content>下的<sentence>集合
List<?> tok_list;//<sentence>下的<tok>集合
//遍历<sentence>节点
for (int i = 0; i < sentence_list.size(); i++) {
tok_list = ((Element)sentence_list.get(i)).elements();//获得每个sentence的tok集合
for (int j = 0;j < tok_list.size();j++) {
setWordMap((Element)tok_list.get(j),wordMap);
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
public void setWordMap(Element tok,Map<String,Integer> wordMap) {
String type,text;
List<?> list;
if (!(tok.getName().equals("tok"))) {//如果不是tok节点,那么就不用处理了
return ;
}