您好,欢迎访问三七文档
关于建立社工库的经验总结iframe2015-06-16共149740人围观,发现28个不明物体其他工具免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!“社工库”是运用社会工程学进行渗透测试时候积累的各方面数据的结构化数据库。环境介绍①Host:Fedora(English)(server),win8(中文)②Fedora安装apache,MysqlWorkbench,语言包(Fedora安装时选择)。③Database:Mysql安装在Fedora,建库/表统一编码UTF8,修改my.cnf中的datadir=单独的一个分区,tmpdir=空间足够大的空间(16G)。④Win8:安装了notepad++,Navicat。MySql配置如下:/etc/my.cnf[mysqld]skip-name-resolve#datadir=/var/lib/mysqldatadir=/home/data/mysql/tmpdir=/MysqlTemp/#socket=/var/lib/mysql/mysql.socksocket=/home/data/mysql/mysql.sockuser=mysqldefault-character-set=utf8max_allowed_packet=200Mnet_buffer_length=65536wait_timeout=2880000interactive_timeout=2880000symbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[mysql]socket=/home/data/mysql/mysql.sock[mysqldump]socket=/home/data/mysql/mysql.sock[mysqladmin]socket=/home/data/mysql/mysql.sock着重修改datadir,tmpdir,socket。可能有的同学还用txtSearch,我觉得实在是有点慢,还…准备篇①txt体积不超过400M的一律先转化成UTF-8编码格式(8G内存图形化可以使用Notepad++)②检查txt中是否有(双引号)'(单引号),会导致意外终止。(还有其他原因后面提到)③如果遇见分割成碎小体积的多份带有编码格式的txt,使用linux下的cat*1.txt时会出现编码问题(这也就是为什么先执行第一条),其实windows可用type*1.txt搞定。(注:windows下type*源文件和目标文件要保持不同目录,windows下的命令工具确实有点渣。咳~)④sql格式的文件,建表时检查是否有索引,删除之,导入后再建,其速度回提高不少。数据导入篇①sql文件,删除key`user`(user);之类索引后,mysql执行sourcexxx.sql导入,不用考虑编码问题,入库后直接使用workbench或nevicat编辑数据库属性转UTF8编码即可,然后再添加索引。②txt文件(使用tab间隔,回车换行),selectintooutfiletxt/bcp可以使用mysql命令loaddatainfilea.txtintotabletest.a;(默认缺省FIELDSTERMINATEDBY'\t'ENCLOSEDBY''ESCAPEDBY'\\',行缺省LINESTERMINATEDBY'\n'STARTINGBY'')③txt文件(非tab的规律间隔符),可以使用操作简单的Navicat导入。④txt文件(非规律间隔符),使用py处理成有序文本,再使用Navicat导入。上图是不规则的空格+tab,下图编写代码处理下。偶遇几个异常,统计下看看所占比例。except:count=count+1来看看处理后的结果。⑤关于mssql转mysql㈠MySQL-Migration-Toolkit㈡MssqltoAccessthenaccesstoMySQL㈢BCPthenLoaddatalocalinfiletxtintotablexx;Win(mssql)cmd执行bcpselect*fromdbname.dbo.infoqueryoutinfo.txt-c-x-S127.0.0.1-Usa-P123.456或者bcpdbname.dbo.infooutinfo.txt-c-x-S127.0.0.1-Usa-P123.456Fedora(MySQL)执行mysql-uroot-pusetest;Loaddatalocalinfile/home/info.txtintotablexx;⑥EmpireBak帝国备份王apache部署EmpireBak,设置目录权限。备份数据复制到bdata目录。登陆主界面,先设置参数,连接数据库,然后选择恢复数据选择要恢复的数据库。优化篇①数据简化deletefrom`XXXX`wheremailnotlike%@%;删除不符合邮件格式的记录deleteFROM`XXXX`wheremailisnullandlength(username)4;删除邮件为空并且用户名长度小于4的记录deleteFROM`XXXX`wherelength(password)4;删除密码长度小于4的记录deletefrom`xxxx`wheremailisnullandpassword=username;......②数据去重方法一deletefrom`xxx`whereidin(select*from(SELECTmin(id)FROM`xxx`groupbymailhavingcount(mail)1)asa);这是百度文章里提到的最多的的一条语句。240W的数据处理了3个多小时才删除了19w数据。方法二createtabletmp_xxxselectmin(id)asid,mail,passwordfromxxxgroupbymail,password;同样的240w数据去重不到两分钟就搞定了。(160wspend56s)注:这条命令最容易出现的一个问题是临时空间不足,如果tmp是单独分区空间太小的话,可以修改my.cnf的tmpdir=/otherdir。保证otherdir空间充足(16G)。修改otherdir权限,mysql可以访问修改。重启mysql。③关于查询优化㈠分清楚精确查询还是模糊查询,精确查询例如手机号;模糊查询例如用户名和邮箱。=比like效率高。㈡模糊查询尽量使用'string%'来代替'%string%'。㈢sql语句中能使用单引号的尽量使用单引号。㈣如果ID和行数一样,select*fromxxxwhereid=888;可以用select*fromxxxlimit887,1;代替(无索引时使用)。④添加索引给常用查询字段添加索引,模糊类用BTREE存储类型,精确类用HASH存储类型。推荐使用Navicat选择表打开表讯息,选择DDL选项卡,可以清楚看到该表的sql,有无索引一目了然,然后右击数据库名选择它的console功能,来快速添加索引。ALTERTABLE`XXX`ADDINDEX`inx_username`(`username`),ADDINDEX`inx_mail`(`mail`);⑤表类型使用MyISAMMyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持。另外MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率也就对应提高了不少。问题篇①关于利用帝国备份王跨平台恢复所见问题㈠打开本地页面,显示空白。帝国备份采用了不是完全标准的php格式(?php…?)书写,用了短标记格式?…?,所以针对解决办法就是配置php.ini,启动短标记格式。short_open_tag=On㈡恢复数据时,点击开始恢复,提示参数不对确保要恢复的数据库名和备份名一样(可在备份文件目录下的config.php查看),确保备份的php源文件有读写权限或者chgrpapache*-R。②PHP问题㈠Fatalerror:Allowedmemorysizeof134217728bytes最大单线程的独立内存使用量超过了128M。修改/etc/php.inimemory_limit=512M㈡时区错误问题修改/etc/php.inidate.timezone=Asia/Chongqing㈢mysql默认位置修改修改/etc/php.inimysql.default_socket=/home/data/mysql/mysql.sock㈣Illegalmixofcollations(gbk_chinese_ci,IMPLICIT)and(latin1_general_ci,IMPLICIT)查询的几个表之间,字符编码不统一,不能在当前页面显示。转UTF8。③sql加密,hex④MySQL问题㈠[Err]Gotapacketbiggerthen'max_allowed_packet'bytes百度之,max_allowed_packet=500M但是错误依然没有解决。(那些只知道转载的坑货)来看看错误提示,居然是一个双引号?请看准备篇第2条。㈡MySQLserverhasgoneaway百度之:一、可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allowed_packet的值即可。(又是这一套,我#$%*~)二、应用程序(PHP)长时间的执行批量的MYSQL语句,超过了mysql的wait-timeout时间。修改/etc/php.iniwait_timeout=2880000interactive_timeout=2880000但是问题还是没解决。我的实际操作过程中遇到过几次,大部分是这两种情况。Α使用MySQLWorkbench向1700W条数据添加索引时。Β使用Navicat去重时。那么使用Terminal看看。麻麻再也不用担心MySql离我而去了。㈢SQL文件带索引导入的,要检查index是否有效。建议篇①基于各种数据库层数不穷的泄露,除了密码算法要各种加强外,我们自己的密码也要既有复杂性,又有迷惑性。例如I1O0',|/\r\n;②数据库和web脚本也要考虑到扩展性,不同来源的表都要单独的建立一个新表。③web页面上对于每张表的查询时间可帮助你精确定位。④关于数据优化,我建议入库时保留regip,优化时采用如下语句来优化。selectregip,count(*)groupbyregiporderbycount(*)desc;本条语句作用,你懂得,不用谢我。然后怎么做,你也懂。实例实例一以2014-9-11国外某论坛流出来的gmail-5000000.txt文件为例。1.检查字符UTF-8,检查单双引号,既有单引号又有双引号还有波浪号。(看来国外有些人的密码意识很强)2.分隔符是:,统计:个数比行数多好几万。明显有部分人密码中带有:。(不能简单的用Navicat解决)3.简单修改py脚本替换gmail.txt第一个出现的冒号为\t。嗯,一个都不能少。实例二以图为例1.分隔符采用“—-”,统计“—-”个数。(居然还有人用这个当密码?)2.navicat不能采用2位以上的分隔符。3.先建表,然后采用loaddatalocalinfile方法。(别忘了转UTF8,当然入库转也可以)Loaddatalocalinfile`/home/xx/Desktop/b14.txt'intotable`tn`fieldsterminatedby'----';what!这么多警告,来看看是什么鬼。垃圾邮箱这么多…数据优化来一套:deletefromxxxwheremaillike'aaaaaa%'andpasswordlik
本文标题:建立社工库
链接地址:https://www.777doc.com/doc-2422502 .html